我收到了这个奇怪的警告信息在控制台为我的反应应用程序。
警告:失败的propType: checker不是一个函数,检查
Chart的呈现方法。
我根本没有任何检查方法。如果我删除了我的propTypes,警告就消失了。有什么想法吗?
我的反应成分:
var Chart = React.createClass({
//...
propTypes: {
legend: React.PropTypes.bool,
max: React.PropTypes.number,
min: React.PropTypes.number,
series: React.PropTypes.arrayOf(
React.PropTypes.shape({
label: React.PropTypes.string,
values: React.PropTypes.arrayOf(
React.PropTypes.arrayOf(
React.PropTypes.oneOfType(
React.PropTypes.number,
React.PropTypes.object // Date
)
)
),
colorIndex: React.PropTypes.string
})
).isRequired,
threshold: React.PropTypes.number,
type: React.PropTypes.oneOf(['line', 'bar', 'area']),
units: React.PropTypes.string,
xAxis: React.PropTypes.arrayOf(React.PropTypes.string)
},
render: function() {
return (<svg>...</svg>);
}
//...
});我发送给图表组件的有效载荷是:
var series = [
{label: 'first', values: [[5,2], [4,3], [3,3], [2,2], [1,1]], colorIndex: "graph-1"},
{label: 'second', values: [[5,3], [4,2], [3,0], [2,0], [1,0]], colorIndex: "graph-2"}
];发布于 2015-05-27 01:39:07
一个拉请求已经合并到React,当再次发生类似错误时,它为开发人员提供了更好的反馈。
现在,验证消息将如下所示:
向oneOf提供的无效参数,期望数组的实例。
https://github.com/facebook/react/pull/3963
这应该是反应0.14的一部分。
发布于 2017-03-10 13:05:32
在我的例子中,当我用一个复杂的对象使用shape函数时,我得到了这个结果。解决办法是:
outerObject: shape({
firstInnerObject: {
a: string,
b: string,
},
secondInnerObject: {
a: string,
b: number,
},
}),至:
outerObject: shape({
firstInnerObejct: shape({
a: string,
b: string,
}),
secondInnerObject: shape({
a: string,
b: number,
}),
}),非常琐碎,我知道,但这可能是一个同样没有经验的人,因为我是解决办法。;)
发布于 2015-05-02 02:42:30
变化
React.PropTypes.oneOfType(React.PropTypes.number, React.PropTypes.object)至
React.PropTypes.oneOfType([React.PropTypes.number, React.PropTypes.object])(参数应该是数组)
https://stackoverflow.com/questions/29995444
复制相似问题