【问题标题】:pass existing context to my setContext react hook (JS question)将现有上下文传递给我的 setContext 反应钩子(JS 问题)
【发布时间】: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) =&gt; ({...currentContext, accountId: accountId})) 就像我们在 useReducer 挂钩 useReducer(state =&gt; state.item) 中所做的那样。这可能吗,如果可以,我该怎么写?

【问题讨论】:

  • 这符合您的需求吗?只需提供来自React.useReducerdispatch 而不是setState

标签: javascript reactjs currying use-context


【解决方案1】:

useState() 返回的 set 函数允许您像这样传递一个函数,所以实际上不需要更改我的代码来实现这一点,它已经工作了! p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-01
    • 2021-05-04
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    相关资源
    最近更新 更多