当 React 上下文状态更新时,如果其上下文未被使用,它会强制重新渲染子组件吗?
When a React context state updates does it force a rerender of the child components if its context is not being used?
只是在我真正深入研究之前询问一下,因为这将重写一堆导航逻辑。
我可以有以下结构吗?我有一个列表屏幕和一个编辑屏幕,如下所示
<DataProvider>
<Navigator>
<Screen name="list" component={ComponentThatUseData} />
<Screen name="list different layout" component={ComponentThatUseData} />
<Screen name="list another different layout" component={ComponentThatUseData} />
<Screen name="edit" component={ComponentThatDoesNotUseData}>
</Navigator>
</DataProvider>
如果 DataProvider
有一个 useState
并且我更新它是否会导致重新渲染编辑屏幕,即使 useContext
没有被调用?因为重新渲染会导致我的编辑表单失去焦点。
是的,根据我对React Documentation的了解,React Context的警告之一是当更新Context中的状态时,children会受到影响,我认为这是因为Context Provider 仍然是一个 React 组件。
只是在我真正深入研究之前询问一下,因为这将重写一堆导航逻辑。
我可以有以下结构吗?我有一个列表屏幕和一个编辑屏幕,如下所示
<DataProvider>
<Navigator>
<Screen name="list" component={ComponentThatUseData} />
<Screen name="list different layout" component={ComponentThatUseData} />
<Screen name="list another different layout" component={ComponentThatUseData} />
<Screen name="edit" component={ComponentThatDoesNotUseData}>
</Navigator>
</DataProvider>
如果 DataProvider
有一个 useState
并且我更新它是否会导致重新渲染编辑屏幕,即使 useContext
没有被调用?因为重新渲染会导致我的编辑表单失去焦点。
是的,根据我对React Documentation的了解,React Context的警告之一是当更新Context中的状态时,children会受到影响,我认为这是因为Context Provider 仍然是一个 React 组件。