React报错:Functions are not valid as a React child 求助排查
排查React "Functions are not valid as a React child" 报错
你遇到的这个报错,根源出在你注释掉的那行里的 {this.props.values.pop}/{this.props.values.maxPop} 表达式上——哪怕你认为绑定的是普通值,实际这里大概率是某个值被意外当成函数传递了。
给你几个具体排查方向:
- 确认值的类型:在Bar组件的render方法里,直接打印
typeof this.props.values.pop和typeof this.props.values.maxPop,看输出是不是function。如果是,那就是问题所在。 - 检查Redux映射逻辑:查看你的
mapStateToProps函数,有没有不小心把函数(比如未执行的selector、reducer里的方法)直接映射到values.pop或values.maxPop上。比如用reselect的时候,别写成pop: selectPop,得写成pop: selectPop(state),确保传递的是执行后的结果而非函数本身。 - 核对Redux初始状态与reducer:查看store的初始state,以及处理状态更新的reducer代码,确认
pop和maxPop的初始值是数字/字符串这类普通值,不是函数类型。
至于你提到的大写className,它本身不会触发这个报错——只是你注释掉那行后,包含问题表达式的子元素被移除了,所以报错消失而已。
内容的提问来源于stack exchange,提问作者redmaster
相关产品推荐
相关产品推荐

