我正在使用 reactJS。
我有一個子組件,它看起來像:
const Child = ({callback}) => {
const handleSubmit = async e => {
console.log(await callback()); //callback returns an async value
}
return (
<div> some stuff here </div>
)
}
export default Child;
我在父組件上使用我的子組件,例如:
const Parent = () => {
const sendSomeDataToServer = () => {
axios({
//some stuff here...
})
.then((res) => return {serverInfo: 'OK'})
.catch((err) => {
if(err.response.status < 500)
return {serverInfo: 'e.response.data'}
else
return {serverInfo: 'Unexpected error'}
}
}
return (
<Child callback={sendSomeDataToServer} />
)
}
export default Parent;
但我不知道為什么回傳的值sendSomeDataToServer總是未定義...
看起來 await 沒有按預期作業,知道如何解決這個問題嗎?
uj5u.com熱心網友回復:
你忘了在axios前加return陳述句
您沒有從 sendSomeDataToServer 函式回傳任何內容。
const Parent = () => {
const sendSomeDataToServer = () => {
return axios({
//some stuff here...
})
.then((res) => ({serverInfo: 'OK'}))
.catch((err) => {
if(err.response.status < 500)
return {serverInfo: 'e.response.data'}
else
return {serverInfo: 'Unexpected error'}
}
}
return (
<Child callback={sendSomeDataToServer} />
)
}
uj5u.com熱心網友回復:
const handleSubmit = aync e 不是 aync,它是 async
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/396981.html
上一篇:React組件不斷重新渲染
下一篇:我想在按下按鈕時呼叫API
