我有一个React组件 让我们说
class Component extends React.Component {
constructor(props) {
super(props);
}
a() {
console.log(this.props.A);
}
render () {
return (
<div>
...
</div>
);
}
我想要做的是全局公开函数a()
,这样我就可以在我的应用程序的其他部分(而不是React)中访问它,就像这样window.a()
我过去常常这样做window.a= a;
但我不会在我访问组件道具时如何做到这一点
修改
由于讨论越来越多,我应该澄清我想做什么 我正在使用redux togehther with react,我真的想要从GWT中激活redux动作
所以我的真实世界代码看起来像这样
class Component extends React.Component {
constructor(props) {
super(props);
window.fireTemplatesChanged = this.fireReduxTemplatesChanged.bind(this);
}
fireReduxTemplatesChanged() {
this.props.dispatch(fechDataFromServer());
}
componentWillMount () {
this.props.dispatch(fechDataFromServer());
}
render () {
return (
...create hierarchy of components connected to redux store
);
}
}
export default connect(state => ({
}))(Component);`
因为这只是应用程序的一部分用户能够修改此反映屏幕中显示的对象来自本页面顶部打开的其他地方
修改完成im触发事件后导致redux重新加载数据并重新呈现UI
public static native void fireReactCategoryChangedEvent() /*-{
$wnd.fireTemplatesChanged();
}-*/;