我遇到了一个问题,我需要更新我的 useContext 中的名称,然后立即对照我的代码的另一部分检查它。尽管当我对照另一部分检查它时,上下文中的名称值仍然为空。
所以这是我的上下文文件...
export const UserContext = createContext();
function UserContextProvider(props) {
const [user, setUser] = useState({
name: '',
email: ''
});
function updateUser(field, value) {
return new Promise((resolve, reject) => {
setUser((prevValue) => {
return {...prevValue, [field]: value}
})
resolve();
})
}
return (
<UserContext.Provider value={{user, updateUser}}>
{props.children}
</UserContext.Provider>
)
}
这就是我想要运行的...
const { user, updateUser } = useContext(UserContext);
async function method(event) {
event.preventDefault();
await updateUser("name", "Shaun")
console.log(user);
}
我也尝试了 async 和 await 但这也没有用
我已经在我的代码框中重新生成了这个问题:https ://codesandbox.io/s/youthful-smoke-fgwlr?file=/src/userContext.js