React - 根据状态

时间:2016-11-26 23:40:34

标签: javascript html reactjs

问题问题 - 我有一个表格。表单具有可编辑和不可编辑的状态,这使得输入框可以进行编辑。现在,这个特定的输入框必须根据它所处的状态显示不同的值。即,如果它不在可编辑状态,它必须显示2016年11月27日'如果可编辑状态,它必须显示' 27/11/2016'。

问题是,当我尝试编辑此输入框时,请删除预先定义的值' 27/11/2016'这是行不通的。我认为用函数绑定函数是不可能的。

我尝试了什么 -

function showDate() {
  if(!this.props.isEdit){
     return longDate();
  }
     return shortDate();
}

 <input 
    id='test'
    value={this.showDate()}
    onChange={this.props.onInputChange}
    readOnly={!this.props.isEdit}             
  />

有人可以就此提出建议吗?

更新:我有一个具有功能onInputChange的组件,当表单处于编辑模式时,我想在输入框内显示不同的内容。

1 个答案:

答案 0 :(得分:0)

您应该使用state代替props进行输入更改,如下所示

function onInputChange() {
  if(!this.props.isEdit){
     this.setState({
         date: longDate()
     });
     return;
  }

  this.setState({
      date: shorDate()
  });
}


 <input 
    id='test'
    value={this.state.date}
    onChange={onInputChange}
    readOnly={!this.props.isEdit}             
  />