redux 是否有任何方法可以获取其他组件中未 Package 到provider [closed]中的上下文值

fwzugrvs  于 2023-01-13  发布在  其他
关注(0)|答案(2)|浏览(121)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
2天前关闭。
Improve this question
有没有办法在其他没有 Package 到提供者中的组件中获取上下文值,或者有没有其他类似不使用上下文的方法?
下面是演示代码:https://codesandbox.io/embed/react-context-api-example-forked-h0tt05?file=/src/index.js&codemirror=1

mitkmikd

mitkmikd1#

如果上下文提供程序没有 Package 元素或其祖先之一,则不能使用上下文传递数据。
在要与提供程序共享数据的位置 Package 两个元素。然后,可以使用上下文将数据从<ParentComponent />传输到<List2 />

<>
    <MyContext.Provider>
        <ParentComponent />
        <List2 />
    </MyContext.Provider>
</>
brtdzjyr

brtdzjyr2#

您可以通过props钻取将数据传递给子组件。
例如,ListOne是上下文提供程序 Package 的父组件。您可以在ListOne下添加子组件,并使用本地状态和prop处理组合发送值。
伪代码示例

<MyContext.Provider
  value={{
    state: theme,
    updateState: () => toggleState()
  }}
>
  <ListOne/>
</MyContext.Provider>

这里ListOne位于上下文提供程序下。
您可以将值从上下文提供程序发送到其子级,而无需使用上下文提供程序,只需传递prop drilling即可。在ListOne组件中创建一个本地状态,从上下文提供程序获取值并将其传递给子级。
例如:

const[localState,sateLocalState] = useState("value from context put here")

<child value={localState}/>

在子组件中,您现在会发现值为localStateValue。

相关问题