反应更新父组件

时间:2017-07-19 16:57:18

标签: javascript reactjs

我有一个React组件,当我在子组件上调用onSubmit时需要更新它

需要更新的父组件如下所示:

componentDidMount() {
    axios.get('/todo')
        .then(function (response) {
            this.setState({
                todoList: response.data
            })
        }.bind(this))
        .catch(function (error) {
            console.log(error);
        });
}

render() {
    return (
        <div>
            <Form/>
            {this.state.todoList.map(todo => {
                return (
                    <TodoItem
                        id={todo._id}
                        key={todo._id}
                        itemToDo={todo.todoItem}

                    />
                );
            })}
        </div>
    )
  }

当我提交<Form/>组件时,我致电

handleSubmit(e) {
    e.preventDefault();
    axios.post('/todo', {
        todoItem: this.state.todoItem
    })
}

我需要更新父组件,以便从服务器获取更新列表

2 个答案:

答案 0 :(得分:3)

我不完全确定您的问题,但您可以将一个函数(updateParent)从父组件传递给子组件作为属性,当您想要更新父组件时,在您的子组件中调用this.props.propFromParentComponent 。如果要更新父组件,请使用this.setState({..})并更新组件的状态以更新此函数内部的父组件(updateParent)。

答案 1 :(得分:0)

如果您有一个父组件正在侦听支持更改的商店,您可以让子组件更新商店,而商店将更新父商品。这可以假设你有一个单向的数据流。

如果您需要让子组件直接更新它的父级,那么AliF50提供的答案是可行的。