我对React很陌生,我正在尝试使用Coherent UI开发用于游戏引擎的UI。我的用户界面是使用React构建的,我试图将来自Coherent UI的消息发送到我的React应用程序。
Coherent UI提供了将原始javascript脚本命令发送到浏览器以执行或注册事件的功能,但这些命令都不适用于我。
我希望Coherent UI发送简单的javascript命令toggleLoadingAnimation();
,但我不知道如何在我的React UI中创建这个javascript函数,该函数实际上会调用组件的功能或更改其功能状态。
以下是发送Javascript命令的相关用户界面信息:https://coherent-labs.com/Documentation/cpp/dc/dc7/_binding_cxx.html
如何格式化命令或正确注册要以这种方式调用的组件的回调函数?
有没有办法告诉组件调用其中一个成员函数?
答案 0 :(得分:0)
你可以改变道具然后再做ReactDOM.render,反应组件会保持状态。
答案 1 :(得分:0)
这听起来像React反模式,但您可以考虑在a
内定义一个函数:
componentDidMount
答案 2 :(得分:0)
我最终使用Redux解决了这个问题,并在窗口级别公开了商店。
组件订阅商店(通常自动使用Redux' connect()
),然后可以发送调度消息,并由订阅的组件提取。
const store = createStore(Reducer, { variants, selectedVarient: 0, loadingVisible: false });
window.store = store;
...
<Provider store={ store }>
<App />
</Provider>
这允许我从控制台发出命令(类似的Coherent UI可以发送命令),如下所示:
store.dispatch({ type: 'SET_LOADING_VISIBLE', loadingVisible: true });