Реагировать this.props.children.apply не является функцией

Я делаю приложение реакции с неустановленным, чтобы управлять состоянием моего приложения, приложение представляет собой простой CRUD заметок.

У меня есть компонент NoteList для отображения списка заметок. Это моя функция render () в компоненте NoteList:

render() {
        return (
            <Subscribe to={[NoteContainer]}>
                {noteContainer => (
                    noteContainer.state.isLoaded ?
                        (
                            noteContainer.state.notas.map((note, i) => {
                                return (<Note note={note} index={i} onRemoveNote={this.removeNote} onEditNote={this.saveEditNote} key={i}></Note>)
                            })
                        )
                        :
                        (
                            <div>Loading Notes...</div>
                        )
                    )}
                )}
            </Subscribe>
        )
}

Однако, когда я загружаю страницу, я получаю следующую ошибку:

this6.props.children.apply не является функцией

А в консоли chrome следующее описание:

Вышеупомянутая ошибка произошла в компоненте: в Consumer (создан Subscribe) в Subscribe (at NoteList.js:19) в NoteList (в App.js:160) в Provider (создан Consumer) в Consumer (создан Provider) в Поставщик (в App.js:159) в приложении (в src/index.js:7)

Я не имею ни малейшего понятия о том, что может быть источником этой ошибки, если кто-то может оказать мне какую-либо помощь, я был бы признателен!

Заранее спасибо, хорошего дня!

1 ответ

Решение

Дети <Subscribe /> это функция, которая возвращает массив потомков, поэтому ошибка Чтобы проверить это, внутри <Subscribe />Вы могли бы сделать console.log(this.props.children)и вы увидите, что это массив, вы не можете использовать apply в массиве, вам нужно перебрать и применить его к каждому потомку

this.props.children.map(children => children.apply())
Другие вопросы по тегам