【发布时间】:2020-08-31 16:04:30
【问题描述】:
我当前的上下文以及设置更新上下文的方法如下所示:
export const AppContextProvider = ({ children }) => {
const [currentAppContext, setCurrentAppContext] = useState(initApp)
const setAppContext = values => {
setCurrentAppContext(values)
}
return <AppContext.Provider value={{ appContext: currentAppContext, setAppContext }}>{children}</AppContext.Provider>
}
我在一个组件中设置了新的上下文,如下所示:
export default function Settings() {
const { appContext, setAppContext } = useContext(AppContext)
const func = ({ accountId }) => {
setAppContext({
...appContext,
accountId: accountId,
})
},
})
return <></>
}
但我宁愿只做 setAppContext((currentContext) => ({...currentContext, accountId: accountId})) 就像我们在 useReducer 挂钩 useReducer(state => state.item) 中所做的那样。这可能吗,如果可以,我该怎么写?
【问题讨论】:
-
这符合您的需求吗?只需提供来自
React.useReducer的dispatch而不是setState?
标签: javascript reactjs currying use-context