Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 访问反应组件';s在非响应文件中的状态_Javascript_Backbone.js_Reactjs - Fatal编程技术网

Javascript 访问反应组件';s在非响应文件中的状态

Javascript 访问反应组件';s在非响应文件中的状态,javascript,backbone.js,reactjs,Javascript,Backbone.js,Reactjs,我有一个主干文件,在它里面,我使用React.renderComponent渲染一个React组件(计时器)。但是,在react组件中,我有一个状态调用计数器。我想从主干文件中获取此组件的状态。虽然我将一个props.model传递给了Timer,但我可以在Timer中修改这个props,但这将使props.model中的数据保持不变,这是我不想做的 因为Timer不是React组件的子组件,所以我无法使用refs访问Timer.stat。那么,有没有一种方法可以在其父级中获取计时器的状态 非常

我有一个主干文件,在它里面,我使用React.renderComponent渲染一个React组件(计时器)。但是,在react组件中,我有一个状态调用计数器。我想从主干文件中获取此组件的状态。虽然我将一个props.model传递给了Timer,但我可以在Timer中修改这个props,但这将使props.model中的数据保持不变,这是我不想做的

因为Timer不是React组件的子组件,所以我无法使用refs访问Timer.stat。那么,有没有一种方法可以在其父级中获取计时器的状态


非常感谢

状态不可在组件外部的读取或拉取查询中访问。国家对组件本身及其子组件是私有的

如果需要访问该变量,您有两个选项:

  • 让react组件在每次状态更改时发送一些更改事件,以通知其他人新状态
  • 在react组件外部跟踪它,并将其作为道具传递给组件本身
  • (脏的解决方案:不要在家里尝试):让react组件将特定的状态变量放入要呈现的HTML代码的数据属性中,例如
    ,然后从DOM中读取该属性。在大多数情况下,如果状态更改,react始终会重新渲染,因此您的属性始终与状态同步

实际上,只有在其他所有选项都失败时,才使用最后一个选项作为转义。因为这违反了react的设计原则。

让react组件发出AJAX请求