【问题标题】:State not working properly in ReactJS状态在 ReactJS 中无法正常工作
【发布时间】:2017-06-04 14:07:14
【问题描述】:

我想要做的是,将输入字段值存储到一个状态,然后,如果用户单击保存按钮或存储按钮,那么输入字段将消失,因此编辑将是错误的。我正在尝试当用户点击保存按钮时检查状态长度。问题就在那里。据说是这个错误:Uncaught TypeError: Cannot read property 'state' of null,但我已经将数据存储在editData 状态为什么会这样请你告诉我?

这里有更好理解的代码

class EditData extends Component {
    constructor(props) {
        super(props);
        this.handleChange = this.handleChange.bind(this);
        this.state = {
            editData: ''
        }
    }
    handleChange(e) {
        this.setState({editData: e.target.value})
    }

    save() {
        if (this.state.editData.length !== 0) {
            this.setState({isEditing: false});
            console.log(this.state.editData + 'Added on your database')
        } else {
            alert('Hahah Are you')
        }
        // console.log(this.refs.valTo.value);
    }
    render() {
        return (
            <div>
                <input onChange={this.handleChange} type="text" defaultValue={this.props.data}  /> <button onClick={this.save}>Save</button> <button>cancel</button>
            </div>
            );
    }
}

【问题讨论】:

标签: javascript reactjs


【解决方案1】:

您需要绑定handleChangesave。 还要检查您是否在构造函数中初始化了state

在构造函数中做:

this.handleChange = this.handleChange.bind(this);
this.save= this.save.bind(this);
this.state = {};
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-07
相关资源
最近更新 更多