0
我试图创建一个独立的组件MultiSelect
(我知道那里有组件,但我想学习如何做一个)。组件本地状态不反映在React Redux上更新
我创建它的方式,它将存储所选值的状态。
我这样称呼它从我的容器:
<MultiSelect
items={ this.props.boards }
label="Boards"
value={ this.props.selectedBoards }
onChange={ e => this.onChange(e) } />
当我派遣一个动作,我得到了集装箱的道具正确的价值观。我的MultiSelect甚至显示正确的选项。但由于某些原因,它不会更新所选值。在容器this.props.selectedBoards
具有正确的值,但该组件没有得到此更新。
export default class MultiSelect extends React.Component {
constructor(props) {
super(props); // props.items = all options to select
this.state = {
selectedItems: props.value || [], // selected options (problem)
search: '',
hidden: true,
};
}
render() {
return (<div>
...
this.state.selectedItems
选择的选项是在props
(工作)和所选择的选项是在state
(不得到更新)。
如何使MultiSelect
组件更新为selectedItems
这个状态的新值?或者建议如何创建这样的组件?
这是一个很好的解决方案,但如果你想做出反应,以支撑在未来的变化,考虑了'componentWillReceiveProps'方法。 –