Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于生命周期方法和react中的渲染?_Javascript_Reactjs - Fatal编程技术网

Javascript 关于生命周期方法和react中的渲染?

Javascript 关于生命周期方法和react中的渲染?,javascript,reactjs,Javascript,Reactjs,我的问题是关于react中的生命周期方法,现在我有了这个场景: 一些数据由ajax在父组件中的组件didmount中获取,然后这些数据作为道具传递给子组件,现在我们在子组件中,因此我们可以实现不同的生命周期方法 componentDidMount:无法查看道具的真实值,例如,日志记录中的日期返回空数组,而不是所需数组 组件将安装:相同 组件将接收道具:如果不使用下一步,则相同 componentDidUpdate:记录数据返回作为道具传递的所需数据 渲染:返回所需的数据 因此,如果我总是被迫在c

我的问题是关于react中的生命周期方法,现在我有了这个场景: 一些数据由ajax在父组件中的组件didmount中获取,然后这些数据作为道具传递给子组件,现在我们在子组件中,因此我们可以实现不同的生命周期方法

componentDidMount:无法查看道具的真实值,例如,日志记录中的日期返回空数组,而不是所需数组

组件将安装:相同

组件将接收道具:如果不使用下一步,则相同

componentDidUpdate:记录数据返回作为道具传递的所需数据

渲染:返回所需的数据


因此,如果我总是被迫在componentDidUpdate或render中调用我的数据,是否有一种方法可以在不使用redux的情况下管理这些数据???

您孩子的
组件将挂载
,并且
组件DidMount
可能只接收到一个空数组(我假设这是默认值)因为子组件是在返回API结果之前实例化的,例如
,而不是
result.length>0&
。挂载只发生一次,然后每次道具更改后都会发生组件更新


假设您只是显示传递下来的数据,在渲染中处理它是完全可以接受的。否则,如果您想执行其他副作用,请检查父组件(上段)中的完整性,此时您应该能够看到子组件的
组件didmount
中的完整值。或者,您可以按照您的建议在孩子的
组件diddupdate中执行完整性检查,并在那里处理它。

当然不在
渲染中
componentDidUpdate
componentDidMount
是网络呼叫的好地方。谢谢你,我只想知道,为什么子组件中的componentDidMount、ReceiveProps和willMount无法在父级@ArupRakshitThank中看到componentDidMount获取的数据,但这使react没有那么灵活,我发现我自己走了,被迫在render中编写我的业务逻辑,你说这是可以接受的???我甚至试图通过受益于nextProps参数来利用ReceiveProps,但有时会得到意想不到的结果。如果您的应用程序的规模与您关心的UI层中的业务逻辑相当,那么我建议您考虑添加另一个库,如Redux、MobX等。。。来帮你处理这件事。React是一个视图库,虽然简单的业务操作可以通过设置状态和生命周期优雅地处理,但这不是它的目的。React的灵活性来自于它与其他库集成以进行状态管理、业务逻辑等的能力。。。