Javascript 同一提供程序的多个声明是否会在React中创建新实例?
React 16.3.x中的问题1提供程序是否会共享同一实例,而不考虑层次结构 问题2具有共享Javascript 同一提供程序的多个声明是否会在React中创建新实例?,javascript,reactjs,react-context,Javascript,Reactjs,React Context,React 16.3.x中的问题1提供程序是否会共享同一实例,而不考虑层次结构 问题2具有共享值的LazyLoadProvider是否会是相同的实例 const value1 = {wow: () => {}} <App> <LazyloadProvider value={value1}> <LazyloadConsumer > <h1>hello sibling 1</h1> </Lazylo
值的LazyLoadProvider是否会是相同的实例
const value1 = {wow: () => {}}
<App>
<LazyloadProvider value={value1}>
<LazyloadConsumer >
<h1>hello sibling 1</h1>
</LazyloadConsumer>
<LazyloadProvider value={value1}>
<LazyloadConsumer>
<h1>hello sibling 1 - child nest</h1>
</LazyloadConsumer>
</LazyloadProvider>
</LazyloadProvider>
<LazyloadProvider value={value1}>
<LazyloadConsumer>
<h1>hello sibling 2</h1>
</LazyloadConsumer>
</LazyloadProvider>
</App>
我不太明白github的这个问题,但我认为它在谈论类似的东西时,上下文消费者会从最近的提供者收到一个值
如果
是
的孩子,
不会影响它
这与变量作用域中的逻辑相同:
const foo = 1; // won't affect inner scope any way
{
const foo = 2;
console.log(foo); // 2
}
当它们共享同一个值时又如何呢?它是相同的还是不同的值都无关紧要。如果存在内部LazyloadProvider
,则忽略外部LazyloadProvider
。也不清楚你所说的“实例”是什么意思。
const foo = 1; // won't affect inner scope any way
{
const foo = 2;
console.log(foo); // 2
}