【发布时间】:2021-01-08 03:58:26
【问题描述】:
我正在成功获取数据。我得到的数据是这样的:
{message: "Success", savedAnswer {Question1: "Yes", Question2: "Yes"}}
问题:当我尝试更新状态时,我的控制台中出现“未定义”状态。
这是我的代码:
const [redirectOnLogin, setRedirectOnLogin] = useState(false);
const [loginLoading, setLoginLoading] = useState(false);
const [userAnswer, setUserAnswer] = useState([]);
const submitAnswers = async (answers) => {
try {
setLoginLoading(true);
const { data } = await axios.post(
`signupQuestions`,
answers
);
console.log(data.savedAnswer) //works properly
setUserAnswer(data.savedAnswer);
console.log(userAnswer) //undefined
setTimeout(() => {
setRedirectOnLogin(true);
}, 700);
} catch (error) {
setLoginLoading(false);
const { data } = error.response;
}
};
当我 console.log(data) 一切正常(参见代码),但是当我更新状态和 console.log(userAnswer) 时,我得到“未定义”。
我认为这与渲染有关?我已经尝试在代码中添加条件,例如:
if (data.savedAnswer !== undefined) {
setUserAnswer(data.savedAnswer)
}
..但我无法让它工作。任何帮助表示赞赏!谢谢!!
【问题讨论】:
标签: javascript reactjs async-await react-hooks