我有两个钩子:
const dispatch = useDispatch();
const response = useSelector(state => state.responseData);
和submit
函数:
const submit = () => {
dispatch(connectToServer(`${BASE_URL}user/signIn`, {
email: state.email,
password: state.password
}, 'post'))
if (response.data.token) <--- this data is 1 step late
//do smth
我只在渲染JSX元素时看到相关数据,但是无法根据此数据创建函数,该数据要晚1步。
答案 0 :(得分:1)
这里有三个问题:
connectToServer
操作可能正在做一些异步工作,因此在下一行运行时不可能已经更新了响应await dispatch(connectToServer())
,React可能仍未重新渲染您将需要:
useEffect
中,然后等待下一次具有正确数据的重新渲染