【发布时间】:2017-04-02 08:16:30
【问题描述】:
我正在尝试创建一个独立组件MultiSelect(我知道那里有组件,但我想学习如何做)。
我以一种将所选值存储在其状态中的方式创建它。
我从我的容器中这样称呼它:
<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(不会更新)上。
如何使用处于状态的selectedItems 的新值更新MultiSelect 组件?或者推荐的创建这样的组件的方法是什么?
【问题讨论】:
标签: javascript reactjs react-redux