Javascript 同一提供程序的多个声明是否会在React中创建新实例?

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

React 16.3.x中的问题1提供程序是否会共享同一实例,而不考虑层次结构

问题2具有共享
值的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
}