为什么setState不会改变"编辑"真的关键?

时间:2018-05-08 10:57:09

标签: javascript reactjs setstate

编辑功能不会将编辑状态更改为true。

我不知道该怎么做:

class Note extends React.Component {
constructor (props) {
    super(props)
    this.state = {
        editing: false

    }

}
/**edit() {
    this.setState = ({
        editing: true
    })**/

}

remove() {
    alert ("removed")
}

save() {
    alert ("saved")
}

renderForm() {
    return (
        <div className="note">
            <form>
                <textarea/>
                <button onClick={this.save}> click  </button>
            </form>
        </div>
    )
}

renderDisplay() {
    return (
        <div className="note">
            <p> Learn React </p>
            <span>
                <button onClick={this.edit} id="edit"> Edit </button>
                <button onClick={this.remove} id="remove"> Delete </button>
            </span>
        </div>
    )
}

render() {
    return this.state.editing ? this.renderForm() : this.renderDisplay()
}

}

1 个答案:

答案 0 :(得分:3)

你应该改变这个:

this.setState = ({
  editing: true
})

到此:

this.setState({
  editing: true
})

此外,您应该绑定edit方法或使用箭头功能。这是必需的,因为在JavaScript中函数上下文是在调用函数时定义的,而不是在定义函数时定义的。

Here you can check an example.