我如何检查状态与道具不同?

时间:2017-09-25 15:50:34

标签: javascript reactjs react-redux

我有一个道具,例如“shop_name”(这来自redux)。我必须检查这个道具与我的州“shop_name”不同,并禁用我的按钮。

现在我正在通过这种方法进行检查;

isChanged() {
  const changedShopName = this.state.shop_name !== this.props.shop_name;

  return changedShopName;
}

我正在通过onchange func传递新状态。并使用此保存功能进行保存。

onChange(event) {
  const name = event.target.name;
  const value = event.target.value;

  this.setState({
    [name]: value
  });
}

saveSellerInfos() {
  const data = {
    shop_name: this.state.shop_name,
  };

  this.props.saveSellerInformations(data);
}

这是我的禁用字段按钮;

<Button
        onClick={this.saveSellerInfos}
        disabled={!this.isChanged()}
        label={t('Save')}
        className={styles.save}
      />

保存功能后,此道具无法正常更新。如何在保存功能后检查nextProps并禁用我的按钮?

1 个答案:

答案 0 :(得分:1)

封装在this中的

Button与您的想法不同,您需要使用.bind。如下所述:https://medium.freecodecamp.org/react-binding-patterns-5-approaches-for-handling-this-92c651b5af56