将现有上下文传递给我的setContext react hookJS问题

问题描述

我当前的上下文以及用于设置更新上下文的方法如下:

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)中所做的那样。如果可以的话,这怎么可能呢?

解决方法

useState()返回的set函数允许您像这样传递函数,因此实际上不需要更改我的代码即可,它已经可以工作

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...