我正在制作一个未声明状态的react应用来管理我的应用状态,该应用是一个简单的注释注释。
我有一个NoteList组件来呈现Notes列表。 这是我在NoteList组件中的render()函数:
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控制台中进行以下描述:
上述错误发生在组件中: 在使用者中(由订阅创建) 在订阅中(在NoteList.js:19处) 在NoteList中(在App.js:160) 在提供者中(由消费者创建) 在消费者中(由提供者创建) 在提供程序中(在App.js:159) 在App中(位于src / index.js:7)
如果有人可以给我任何帮助,我将不知道该错误的根源!
提前谢谢,祝你有美好的一天!
答案 0 :(得分:1)
<Subscribe />
的子代是一个返回子代数组的函数,这就是错误的原因。
要检查它,可以在<Subscribe />
内执行console.log(this.props.children)
,您会看到它是一个数组,不能在数组中使用apply,需要遍历并将其应用于每个子元素< / p>
this.props.children.map(children => children.apply())