Javascript 从React应用程序外部访问组件方法

Javascript 从React应用程序外部访问组件方法,javascript,reactjs,scope,redux,Javascript,Reactjs,Scope,Redux,我有一个React/Redux应用程序和一个组件 不幸的是,我必须使用第三方库,它需要从React应用程序中触发函数 class Account extends React.Component { doSomething(){ // Do react things } render{ return() } } 现在我有了一些我控制有限的HTML,被插入到DOM中。这不是一个iFrame <button onClick="doSomething()">

我有一个React/Redux应用程序和一个组件

不幸的是,我必须使用第三方库,它需要从React应用程序中触发函数

class Account extends React.Component {
  doSomething(){
    // Do react things
  }
  render{
    return()
  }
}
现在我有了一些我控制有限的HTML,被插入到DOM中。这不是一个iFrame

<button onClick="doSomething()">interact with react</button>
与react交互

有没有办法从React外部触发
doSomething()
方法?类似于
ReactApp.Account.doSomething()
的东西是我所需要的。

如果我理解正确,在React/Redux应用程序中执行您想要的操作的正确方法是向应用商店发送新操作,并相应地注册您的事件处理

<button onClick="store.dispatch(createAction())">interact with react</button>
与react交互

除非必须,否则不要试图找到一种方法来“破解”React组件内部。因为你们已经有了类似通量的模式,所以忽略它是不好的。尽管该方法的设置可能会稍微复杂一些,正如@Kovensky在评论中提到的。

如果我理解正确,在React/Redux应用程序中执行您想要的操作的正确方法是向应用商店发送新操作,并相应地注册您的事件处理

<button onClick="store.dispatch(createAction())">interact with react</button>
与react交互

除非必须,否则不要试图找到一种方法来“破解”React组件内部。因为你们已经有了类似通量的模式,所以忽略它是不好的。尽管该方法的设置似乎稍微复杂一些,正如@Kovensky在评论中提到的。

检查这个问题检查这个问题如果他使用的是bundler,
store
createAction
可能无法作为globals提供。他应该在
窗口
中定义一个函数,由
onclick
调用,该函数将执行分派。如果他使用捆绑程序,
存储
创建操作
可能无法作为全局函数使用。他应该在
窗口
中定义一个函数,由
onclick
调用,该函数将执行分派。