React.js setState не перерисовывает дочерний компонент - PullRequest
0 голосов
/ 31 октября 2018

Я передаю список из родительского компонента state в дочерний компонент <CheckboxList /> props. Список должен отображаться в дочернем компоненте. После извлечения элементов списка из базы данных я использую setState для обновления списка, но дочерний компонент не отображается повторно с новым списком.

class ParentComponent extends Component {

    state = {
        users: [{ username: 'before' }]
    }

    componentDidMount() {
        const result = [];
        db.collection("users").get().then((querySnapshot) => {
            querySnapshot.forEach(function (doc) {
                let user = doc.data();
                result.push(user);
            });
        }).then(() => {
            this.setState({
                users: result
            })
        })
    }

    render() {

        return (
            <div>
                <h1>List of users</h1>
                <CheckboxList list={this.state.users} />
            </div>
        )
    }
}

В списке отображается before, и он не обновляется содержимым из базы данных. Я проверил, и значения извлекаются из базы данных, они просто не передаются в <CheckboxList /> после setState. Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 07 ноября 2018

Проблема заключалась в том, что я извлекал list из состояния CheckboxList и затем использовал его для этого. Теперь я исправил это. Я извлекаю его в CheckboxList render(), сохраняю в переменную и затем использую его оттуда.

...