gpt4 book ai didi

javascript - React Context - 设置状态然后直接引用它?

转载 作者:行者123 更新时间:2023-12-02 22:10:35 26 4
gpt4 key购买 nike

我正在处理一个项目列表,我想设置一个选定的项目 ID,然后使用该 ID 获取选定的项目。

我正在使用有效的 reducer 更新上下文的状态,但是当引用状态的属性时,它看不到更新的值。

Component.js

  useEffect(() => {
setSelectedId(5);
getSelectedItem();
}, []);

Context.js

  const initialState = {
selectedId: 0,
};

const [state, dispatch] = useReducer(ItemReducer, initialState);

const setSelectedId = id => dispatch({ type: SET_SELECTED_ID, payload: id });

// HERE IT THINKS 'state.selectedId' IS 0
const getSelectedItem = async () => {
const selectedItem = await fetch(url + state.selectedId);
};

Chrome dev tools

Chrome 开发工具显示 selected id 属性已更新为 5,但 getSelectedItem 函数将“selectedId”视为 0 而不是 5。

这可能是一个简单的问题,我们将不胜感激。

谢谢

最佳答案

您需要解决将返回的 promise 。像这样的东西:

useEffect(() => {
setSelected(5).then(getSelectedItem());

}, []);

关于javascript - React Context - 设置状态然后直接引用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59570501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com