gpt4 book ai didi

reactjs - React 上下文应该始终是单例,还是有另一种方式?

转载 作者:行者123 更新时间:2023-12-04 14:27:11 25 4
gpt4 key购买 nike

我见过的每一个例子都是 React上下文就像 this :

theme-context.js

// Make sure the shape of the default value passed to
// createContext matches the shape that the consumers expect!
export const ThemeContext = React.createContext({
theme: themes.dark,
toggleTheme: () => {},
});

您所在的文件包含上下文的实例。然后使用 useContext(ThemeContext) 将其传递到组件中.

我的问题是,如果您这样做并且它始终是单例,那么为什么不直接从单例导入上下文中的内容。基本上,我想知道是否有一段时间您创建了多个上下文实例,例如可能为了测试您为每个测试创建一个新实例,诸如此类。

最佳答案

首先,React.createContext({'light'})中的值是默认的。
它主要用于调试或只是跳过它,并将其留空 React.createContext() .
用法示例:
您的 Context.Provider 中有一个数据,但您不确定是否将其正确传递给您的 Product.Consumer ,所以如果弹出默认值,你就知道你做错了什么。

在文档中,这种技术用于传递简单的数据,例如单音 React.createContext({'theme:themes.dark'}) .

大多数情况下,您将使用 Context.ProviderContext.Consumer ,甚至通过this.context .

文档严格解释每一个细节,尝试搜索Context.Provider, Class.contextType, Context.Consumer在文档中。

关于reactjs - React 上下文应该始终是单例,还是有另一种方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57123255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com