backbone.js 在React.js webview和本机代码之间进行通信?

de90aj5v  于 2022-11-10  发布在  React
关注(0)|答案(1)|浏览(137)

我说的不是react-native
这是一个混合应用程序与本机和javascript。
我们使用的Javascript库恰好是React.js。
我们已经在类似的设置中使用了Backbone,我们在原生和js世界之间传递消息时没有遇到任何问题。
为了让原生端与js对话,我们在页面中公开了一个全局变量(一个Backbone View示例)。
所以我们可以做window.login_view.do_login()这样的事情。
这是可能的,因为我们有login_view示例。
然而,对于react.js,我不知道如何创建这样的示例,因为我的代码看起来像下面这样,并且没有可以引用的instance

ReactDOM.render(
   <Provider store={store}>
     <Router>
       <Article/>
     </Router>
   </Provider>,
   document.getElementById('mainApp')
 )

原生端如何在混合应用中与react.js对话?

5lhxktic

5lhxktic1#

使用ref:

...
<Article ref={(article) => { this._article = article; }} />
...

在你的文章课上:

componentDidMount: function() {
    window.globaVarArticle = this._article;
} ...

现在您可以使用window.globaVarArticle.[methodname]访问类Provider的方法了

相关问题