在React中希望使用一个组件获得props的属性,并遍历在li中
错误代码:
报错信息: data为undefine
改正后的代码: 直接在render里获取props数据
class
InputList
extends
React.
Component {
constructor(
props,
context) {
super(
props,
context);
}
render() {
const
data
=
this.
props.
todos;
return (
<
div
>
<
ul
>
{
data
.
map
(
function
(
item
,
i
) {
return
<
li
key
=
{
i
}
>
{
item
.
text
}
</
li
>
;
})
}
</
ul
>
</
div
>
)
}
addLi() {
}
}
export
default
InputList
从这大致可以看出问题应该在constructor和props获得的时间顺序
可以看到getInitialState()在getDefaultProps()之前,所以 state初始化时并不能获得props
若想要绑定state可以通过setState()方法后续进行修改
另外多写无状态组件,即纯展示组件,只负责根据传入的props来展示,不涉及到要state状态的操作,在大部分React代码中,大多数组件应是无状态组件