0

我正在制作一个未说明的反应应用程序来管理我的应用程序的状态,该应用程序是一个简单的注释 CRUD。

我有一个 NoteList 组件来呈现笔记列表。这是我在 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 控制台中,下一个描述是:

上述错误发生在组件中:在Consumer(由Subscribe创建)在Subscribe(在NoteList.js:19)在NoteList(在App.js:160)在Provider(由Consumer创建)在Consumer(由Provider创建)在App 中的提供者(在 App.js:159)(在 src/index.js:7)

我不知道这个错误的根源是什么,如果有人能给我任何帮助,我将不胜感激!

在此先感谢,祝您有美好的一天!

4

1 回答 1

1

的孩子<Subscribe />是一个返回孩子数组的函数,这就是错误的原因。要检查它,在里面<Subscribe />,你可以做console.log(this.props.children),你会看到它是一个数组,你不能在数组中使用 apply,你需要循环并将它应用到每个孩子

this.props.children.map(children => children.apply())
于 2019-02-05T12:09:12.833 回答