Реагировать 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())