小编典典

绑定此后setState不是函数

reactjs

我有一个简单的表格,允许用户创建纯文本帖子。下面的代码在createPostRequest调用之后生成成功的服务器端响应。但是,在发布成功之后,我想更新状态以清空postBody字段并更新UI以反映此更改,然后允许用户发出后续请求以发布其他消息。

当前,一切都仅对第一个请求有效,并且在成功的初始请求之后,postBody字段不会清空,并且当尝试在第一个初始请求之后更改post字段的值时,每次击键都会导致以下错误:

Uncaught TypeError: Cannot read property 'setState' of undefined

注意,有点奇怪的是,尽管绑定this到构造函数中的onChange方法,但还是遇到了上述错误。

有人遇到过这个问题吗?我感谢有关如何解决的任何建议。

constructor(props) {
        super(props);

        this.state = {
            postBody : "",
            location: "main"
        };

        this.onSubmit = this.onSubmit.bind(this);
        this.onChange = this.onChange.bind(this);
    }

    onChange(e) {
        this.setState({
            [e.target.name] : e.target.value
        });
    }

    onSubmit(e) {
        e.preventDefault();

        this.props.createPostRequest(this.state).then(
            () => {

                this.setState = ({
                    postBody : ""
                });
            }
        )
    }

    render() {

        return (
            <div className="create-post-inner col-md-12">
                <form id="createPost" onSubmit={ this.onSubmit } >
                    <textarea value={this.state.postBody} className="form-control postInput" name="postBody" onChange={ this.onChange } >
                    </textarea>
                    <span>The value of the state is {this.state.postBody}</span>
                    <input type="submit" className="submit btn btn-primary" />
                </form>
            </div>
        );
    }

阅读 213

收藏
2020-07-22

共1个答案

小编典典

=在this.setState之后还有一个额外的内容。将以下内容更改为

 this.props.createPostRequest(this.state).then(
        () => {

            this.setState({
                postBody : ""
            });
        }
    )
2020-07-22