Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在更新ThemeProvider上的主题道具时防止渲染组件_Reactjs_Material Ui - Fatal编程技术网

Reactjs 如何在更新ThemeProvider上的主题道具时防止渲染组件

Reactjs 如何在更新ThemeProvider上的主题道具时防止渲染组件,reactjs,material-ui,Reactjs,Material Ui,我通过更新ThemeProvider上的theme道具来更新颜色主题。其中一个by组件有Popper,如果我切换它并发送更改themeprop,则Popper将消失 不过,它会更新默认颜色值。但是我想让Popper不需要重新加载就可以显示它 演示不可用请勿重新渲染。使用popper对组件进行斗争(调试)重新安装。可能您会发现一些带有随机值的key或导致重新装载。@skyboyer我想这是因为更改了EPProvider值,因为无法卸载Popper组件,实际上很多人都显式地使用上下文或作为red

我通过更新
ThemeProvider
上的
theme
道具来更新颜色主题。其中一个by组件有
Popper
,如果我切换它并发送更改
theme
prop,则
Popper
将消失

不过,它会更新默认颜色值。但是我想让
Popper
不需要重新加载就可以显示它


演示不可用

请勿重新渲染。使用
popper
对组件进行斗争(调试)重新安装。可能您会发现一些带有随机值的
key
或导致重新装载。@skyboyer我想这是因为更改了EPProvider值,因为无法卸载Popper组件,实际上很多人都显式地使用上下文或作为
redux
materialui
的一部分。我不认为一旦某个值被更新,它们都会失去组件的状态。只需将
componentWillUmount(){console.log('unmounted!')}
添加到呈现
的组件中,即可检查此假设。