【发布时间】:2020-02-16 20:18:21
【问题描述】:
网站使用 React 应用程序附带的第三方插件。
我需要一个 JS 函数,它从那个 React 应用程序状态读取一些值。但是,我在全局 window 范围内找不到 React 实例... React 将应用程序实例存储在哪里?
我的尝试:当我在 Chrome 中安装浏览器扩展“React Developer Tools”时,会有一个全局对象 window.$r 允许我访问 React状态。我可以做到var title = window.$r.state.title。
但是,$r 对象仅在安装了 React 开发者工具时出现。我需要编写一些适用于所有用户的 JS,即使他们没有那个浏览器扩展。
另外,我无法修改 React 应用程序以通过 ref 或 export 使状态可用。我只能在app外写JS。
我还尝试检查呈现主应用程序组件的根 DOM 节点,但我还没有找到从中读取应用程序详细信息的方法...
【问题讨论】:
-
谁说一个页面上只能运行一个 React 应用程序?我已经为更大的非 React 管理界面的各个部分编写了大量使用 10 个或更多 React“应用程序”的页面。
-
这是很好的反馈,迈克!您对我如何访问特定应用程序有什么建议(例如,当我知道根 DOM 节点时)?
标签: javascript reactjs