反应this.props.children.apply不是一个函数

时间:2019-02-05 11:58:21

标签: javascript reactjs unstated

我正在制作一个未声明状态的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)

如果有人可以给我任何帮助,我将不知道该错误的根源!

提前谢谢,祝你有美好的一天!

1 个答案:

答案 0 :(得分:1)

<Subscribe />的子代是一个返回子代数组的函数,这就是错误的原因。 要检查它,可以在<Subscribe />内执行console.log(this.props.children),您会看到它是一个数组,不能在数组中使用apply,需要遍历并将其应用于每个子元素< / p>

this.props.children.map(children => children.apply())