我非常愚蠢地了解Redux的工作原理。我目前收到以下错误:
Warning: Failed propType: Invalid prop `children` of type `object` supplied to `Provider`, expected `function`
Uncaught TypeError: children is not a function
我的代码如下 - 是否有人能够发现我为什么会收到此错误?
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import { createStore, combineReducers } from 'redux';
import { Provider, connect } from 'react-redux';
import * as reducers from '../reducers/index';
import SassMeter from '../components/SassMeter';
import * as SassActions from '../actions/SassActions';
import _ from 'lodash'
const reducer = combineReducers(reducers);
const store = createStore(reducer);
ReactDOM.render(
<Provider store={store}>
<SassMeter />
</Provider>,
document.getElementById('root')
)
根据我的理解,它抱怨我向提供者传递了一个无效的道具,但我看到的所有示例都遵循我所遵循的模式 - 使用createStore()
创建商店,然后将它作为道具传递给提供者,包装你的根元素。我觉得我可能错过了与connect
有关的事情,但我不确定是什么。
所有人都非常感谢!
答案 0 :(得分:2)
您最有可能升级react-redux
版本和/或react
。
在React&lt; 0.14和react-redux&lt; 1.0.0,Provider组件只接受children
道具的功能。这是基于所有者的上下文传播的变通方法,在React 0.14中不推荐使用基于父的上下文传播。请参阅react-redux 1.0.0 README上的the corresponding doc。