即使组件树没有更改,我如何确保 React 创建组件的新实例?

soo*_*kie 3 javascript reactjs

React 根据树中元素的名称更新其组件树。

例如:

<div>
  <MyComponent/>
</div>
Run Code Online (Sandbox Code Playgroud)

和:

<div>
  <MyComponent enabled/>
</div>
Run Code Online (Sandbox Code Playgroud)

...导致 React 使用相同的<MyComponent>实例(因为组件名称没有改变)。这非常有用,因为它确保组件实例内的内部状态持续存在。

请参阅文档了解更多详细信息。

我的问题:“有没有办法强制在某些情况下创建新实例?”

因此,MyComponent如果(比方说)发生了变化,我希望实例化一个新实例,而不是使用相同的实例prop 'x'

imj*_*red 5

未经测试,但我认为你可以欺骗 React 并将 prop 作为 a 添加key到组件上。

<div>
  <MyComponent enabled key={enabled.toString()} />
</div>
Run Code Online (Sandbox Code Playgroud)

由于您熟悉协调文档,我想您已经知道键的作用了;)