为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

湖上湖 2019-03-14 14:15:56
1.父组件向子组件传值在componentWillMount()方法中console.log()只打印出了字符串数据 数组数据为长度为0就是没有数据传值的代码子组件代码页面效果可以看到数据都能被渲染出来确实传值成功但是componentWillMount()打印books这个数据的时候却是空值
查看完整描述

5 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

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

查看完整回答
反对 回复 2019-03-19
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

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


查看完整回答
反对 回复 2019-03-19
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

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


查看完整回答
反对 回复 2019-03-19
?
HUX布斯

TA贡献1876条经验 获得超6个赞

父组件触发子组件componentWillReceiveProps


查看完整回答
反对 回复 2019-03-19
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

里面的 this.state.book1可能是异步改变的,

子组件首次实例化是,没获取到 books值,componentWillMount里面就是空的

存在期 组件已存在时的状态改变,也就是 book1的值获取到了

依次触发


   componentWillReceiveProps ->

   shouldComponentUpdate ->

   componentWillUpdate ->

   render ->

   componentDidUpdate

可以在上面的几个周期函数打印出来看看


查看完整回答
反对 回复 2019-03-19
  • 5 回答
  • 0 关注
  • 1660 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信