react 在componentWillMount方法中无法获取数组类型的参数

1.父组件向子组件传值在componentWillMount()方法中console.log()只打印出了字符串数据 数组数据为长度为0就是没有数据

传值的代码
https://img1.mukewang.com/5c90a0590001ea6105010079.jpg

子组件代码
https://img4.mukewang.com/5c90a05c0001774605880353.jpg

页面效果
可以看到数据都能被渲染出来确实传值成功
https://img4.mukewang.com/5c90a05e0001dc7608000156.jpg

但是componentWillMount()打印books这个数据的时候却是空值
https://img2.mukewang.com/5c90a0600001b0f905220054.jpg


湖上湖
浏览 1661回答 5
5回答

料青山看我应如是

你这个 booklist 数据 8成 是 ajax 或 fetch 获取 的 数据。。。 你初始化 肯能 是空数组,所以才出现 [], 当获取完数据, 父组件 更改 子组件的 props, 造成 组件件更新, 就显示出字来。最简单的方法, 你在 render 里面 打印 数组。 看看是不是 出两次。

蝴蝶刀刀

那你在父组件中看看是否有值

慕桂英4014372

你这个books的数据是不是异步获取的,如果是异步获取的话componentWillMount的时候可能确实还没有数据,要等取得数据之后会触发子组件的更新,可以在componentWillReceiveProps里打印看看

HUX布斯

父组件触发子组件componentWillReceiveProps

慕田峪9158850

里面的 this.state.book1可能是异步改变的,子组件首次实例化是,没获取到 books值,componentWillMount里面就是空的存在期 组件已存在时的状态改变,也就是 book1的值获取到了依次触发   componentWillReceiveProps ->   shouldComponentUpdate ->   componentWillUpdate ->   render ->   componentDidUpdate可以在上面的几个周期函数打印出来看看
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript