我正在渲染一個App.tsx使用useEffect鉤子的反應組件。在. useEffect_ delivery_ App.tsx在第一次渲染時,delivery未定義,但在下一次重新渲染后,它已定義。
const App = () => {
const [delivery, setDelivery] = useState(null)
const [loading, setLoading] = useState(true)
useEffect(() => {
setup()
}, [])
const setup = async () => {
try {
const response = await someAsyncCall()
setDelivery(response)
setLoading(true)
/// Other functionality
} catch (err) {
console.log(err)
}finally{
setLoading(false)
}
}
return (
<>
{loading? <div>Loading!!</div>
: <div>App has loaded with {delivery.displayName} {delivery.id}</div>
}
</>
)
}
如何撰寫單元測驗以使其以正確的值重新呈現?現在我得到Uncaught [TypeError: Cannot read property 'displayName' of undefined]
我寫的單元測驗:
describe('test', ()=>{
it("mounts", ()=>{
const wrapper = mount(<App />)
})
})
關于如何重新渲染的任何想法?我看了wrapper.update()可以用。我想知道怎么做?
uj5u.com熱心網友回復:
這不應該解決問題嗎?
return (
<>
{loading || !delivery ? <div>Loading!!</div>
: <div>App has loaded with {delivery.displayName} {delivery.id}</div>
}
</>
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/466520.html
