Javascript 切换不';t在react中工作,没有错误

Javascript 切换不';t在react中工作,没有错误,javascript,reactjs,Javascript,Reactjs,我的意图是在按下编辑按钮时显示输入字段,但下面的代码无法工作,我无法找出问题所在,控制台中没有错误 类TodoItem扩展了React.Component{ 构造函数(){ 超级() this.isEditing=false; this.onClickEdit=this.onClickEdit.bind(this); } onClickEdit(){ this.setState({isEditing:!this.isEditing}); } render(){ 返回( {this.props

我的意图是在按下编辑按钮时显示输入字段,但下面的代码无法工作,我无法找出问题所在,控制台中没有错误

类TodoItem扩展了React.Component{
构造函数(){
超级()
this.isEditing=false;
this.onClickEdit=this.onClickEdit.bind(this);
}
onClickEdit(){
this.setState({isEditing:!this.isEditing});
}
render(){
返回(
  • {this.props.item} {this.isEditing?'':'} 编辑 拯救
  • ) } }
    4个问题:

    1:您没有在构造函数中设置初始状态:

      constructor(){
        super()
        this.isEditing = false;
        this.onClickEdit = this.onClickEdit.bind(this);
        this.state = { isEditing: false };
      }
    
    2和3:Span不需要
    this.isEditing
    应该是
    this.state.isEditing

     render(){
        return(
    
          <li>
            <span>{this.props.item}</span>
    /*Look here>>>*/ {this.state.isEditing ? <span><input type="text" /></span> :''}
          &nbsp;&nbsp;<button onClick={this.onClickEdit}>Edit</button>
          <button>Save</button>
          </li>
        )
      }
    
    这是有效的:

    4个问题:

    1:您没有在构造函数中设置初始状态:

      constructor(){
        super()
        this.isEditing = false;
        this.onClickEdit = this.onClickEdit.bind(this);
        this.state = { isEditing: false };
      }
    
    2和3:Span不需要
    this.isEditing
    应该是
    this.state.isEditing

     render(){
        return(
    
          <li>
            <span>{this.props.item}</span>
    /*Look here>>>*/ {this.state.isEditing ? <span><input type="text" /></span> :''}
          &nbsp;&nbsp;<button onClick={this.onClickEdit}>Edit</button>
          <button>Save</button>
          </li>
        )
      }
    

    这是有效的:

    首先,在那之后从'@A.Lau'删除
    '
    ?首先,在那之后从'@A.Lau'删除
    '
    This.isEditing=false
    不是状态?不是状态,只是在类中<代码>此。状态是状态。因此,
    this.state.isEditing
    是您想要查看的
    isEditing
    的位置,您能看一下吗?不起作用。因为您仍在使用
    this.i在
    render
    partA中编辑。刘,为什么这个保存处理程序有错误
    this.isEditing=false
    不是状态?它不在状态中,只是在类中<代码>此。状态
    是状态。因此,
    this.state.isEditing
    是您想要查看的
    isEditing
    的位置,您能看一下吗?不起作用。因为您仍在使用
    this.i在
    render
    partA中编辑。刘,为什么这个保存处理程序有错误?