Установить состояние в handleChange - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь установить состояние текущего элемента в выпадающем списке.Я думал, что будет более простой способ сделать это, чем пройти через всю цепочку действий / редукторов.Но в этом случае setState всегда будет пустым и componentWillReceiveProps никогда не будет вызываться.

Есть ли способ сделать это?

  componentWillReceiveProps(nextProps) {
    console.log("collection next props", nextProps);
    this.setState({
      currentList: nextProps.currentList,
    });
  }

  handleChange (e) {
    console.log('handle change called', e.target.value); //Value is received
    //this.setState({value: e.target.value});
    this.setState({currentList: e.target.value}); //This is never getting the value
    this.props.fetchlistOfAssets(e.target.value); //This action executes without problem

  };

  render() {
    /* Read from market and last price */
    const postItems = this.props.indexes.map(post => (

      <option key={post} value={post}>{post}</option>
    ));
    return (
      <div>
        <h1>Select index</h1>
        <select name="index" onChange={this.handleChange}>{postItems}</select>
      </div>
    );
  }
}

Изменить добавление connect и mapState

const mapStateToProps = state => ({
  indexes: state.posts.indexdays,
  currentList: state.posts.currentList
});

export default connect(
  mapStateToProps,
  { fetchIndexDays, fetchlistOfAssets }
)(CollectionDropDown);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...