javascript - 状态在 ReactJS 中无法正常工作

标签 javascript reactjs

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

这里是更好理解的代码

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>
            );
    }
}

最佳答案

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

在构造函数中执行以下操作:

this.handleChange = this.handleChange.bind(this);
this.save= this.save.bind(this);
this.state = {};

关于javascript - 状态在 ReactJS 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44354970/

相关文章:

javascript - 如何使用纯 Javascript 检查 Switch Bootstrap 5

javascript - 如何从 angularjs 中的 Controller 调用 Ui-Bootstrap 0.10.0 中的 $modal.open

javascript - 在 JavaScript 中维护特定的窗口层次结构

reactjs - React 测试库 : Do I need a new test with new selectors for each test key?

javascript - 如何使用 mysql 提供的日期获取 "time ago"?

javascript - 为什么在 ES6 JavaScript 中调用类时得到 null 值?

JavaScript:如何在数组中存储对象?

javascript - 模拟获取 : Jest test says response is wrong, 但实际运行代码按预期工作

javascript - 有没有办法在 React Router 中使用嵌套路由 ID 作为 prop 参数

javascript - React JSX for 循环仅显示最后一个值