Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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 mobx存储在生命周期方法内不可访问?_Javascript_Reactjs_Mobx_Mobx React - Fatal编程技术网

Javascript mobx存储在生命周期方法内不可访问?

Javascript mobx存储在生命周期方法内不可访问?,javascript,reactjs,mobx,mobx-react,Javascript,Reactjs,Mobx,Mobx React,我有一个react组件,我正在注入一个mobx存储。当我试图从生命周期方法(componentWillMount或componentDidMOunt)中的存储访问可观察对象时,该值为空。但是,当我在render方法中访问它时,它是可用的。我有什么遗漏吗?我觉得这里缺少了一些基本的东西。清楚地指出,mobx react中的observer仅在包装组件的渲染方法中跟踪可观察对象 转换React组件定义的函数(和装饰器), 将组件类或独立渲染函数反应为反应 组件,该组件跟踪渲染和 当其中一个值出现时,

我有一个react组件,我正在注入一个mobx存储。当我试图从生命周期方法(componentWillMount或componentDidMOunt)中的存储访问可观察对象时,该值为空。但是,当我在render方法中访问它时,它是可用的。我有什么遗漏吗?我觉得这里缺少了一些基本的东西。

清楚地指出,
mobx react
中的
observer
仅在包装组件的渲染方法中跟踪可观察对象

转换React组件定义的函数(和装饰器), 将组件类或独立渲染函数反应为反应 组件,该组件跟踪渲染和 当其中一个值出现时,将自动重新渲染组件 变化


如果您查看一下,您可以确认它只跟踪渲染方法,根据我在Mobx状态管理方面的经验,您不应该访问

来自React组件的观测变量。 甚至当您将Redux存储注入React组件时。(装饰或包裹)

计算变量旨在提供更新的可观测变量,以对组件作出反应


您可以访问Mobx操作和计算的,但不能访问可观察的。它们仅在Mobx类中使用。

我的理解是:Mobx将观察render方法中访问的可观察对象的变化,如果值发生变化,则运行render。虽然生命周期方法中提供了可观测值,但它不会监视这些可观测值的变化,因此不会在值发生变化时重新渲染。是的。这是有道理的。我想我在树上设置了一个新值,我的子组件在设置值之前已经渲染过了。我将对此进行更深入的探讨。您是否使用mobx react绑定?看,我当然喜欢。我认为vijayst揭露了我的部分问题。