我有一个带有输入框的React组件,还有一个可选的“高级输入框”:
当你点击“隐藏高级”时,底部的高级选项将消失,同时按钮上的文本变成“显示高级”。这很直观且有效。状态中有一个名为
然而,外部JS代码可能会更改高级选项的值,此时如果高级选项当前是隐藏的并且值与默认值不同,则应该显示高级选项。用户也可以点击“隐藏高级”来再次关闭它。
所以,当外部调用
我应该把
[ basic ]
Hide Advanced...
[ advanced ]
当你点击“隐藏高级”时,底部的高级选项将消失,同时按钮上的文本变成“显示高级”。这很直观且有效。状态中有一个名为
showAdvanced
的键,它控制文本和高级输入是否被呈现。然而,外部JS代码可能会更改高级选项的值,此时如果高级选项当前是隐藏的并且值与默认值不同,则应该显示高级选项。用户也可以点击“隐藏高级”来再次关闭它。
所以,当外部调用
cmp.setState({advanced: "20"})
时,我想要显示高级选项。最简单的方法就是更新我的状态中的showAdvanced
。然而,在React中似乎没有一种方法可以根据其他状态更改来更新某些状态。我可以想到几种行为略有不同的解决方法,但我真的希望具有这种特定行为。我应该把
showAdvanced
移到props中吗?这样做有意义吗?能否在响应状态更改时更改props内容?谢谢。