Javascript 在react native中从其他组件调用函数

Javascript 在react native中从其他组件调用函数,javascript,react-native,react-native-android,Javascript,React Native,React Native Android,如何从react native中的其他组件调用函数 我有一个自定义组件,它呈现在其他地方定义的另一个组件和一个图像按钮。当点击图像时,我想从另一个组件调用一个函数。执行下面的示例时,我得到undefined不是对象(计算this.otherComponent.doSomething') 不建议在组件之间进行直接通信,因为这样会破坏封装。向组件发送一个道具,并让它在方法中处理更改是一个很好的做法,componentWillReceiveProps 类主扩展React.Component{ 建造师

如何从react native中的其他组件调用函数

我有一个自定义组件,它呈现在其他地方定义的另一个组件和一个图像按钮。当点击图像时,我想从另一个组件调用一个函数。执行下面的示例时,我得到
undefined不是对象(计算this.otherComponent.doSomething')


不建议在组件之间进行直接通信,因为这样会破坏封装。向组件发送一个道具,并让它在方法
中处理更改是一个很好的做法,componentWillReceiveProps

类主扩展React.Component{
建造师(道具){
超级(道具);
this.state={value:0};
this.handleClick=this.handleClick.bind(this);
}
handleClick(e){
e、 预防默认值();
this.setState({value:++this.state.value});
}
render(){
返回(
);
}
}
子类扩展了React.Component{
建造师(道具){
超级(道具);
this.state={value:0};
}
组件将接收道具(下一步){
if(nextrops.value!==this.state.value){
this.setState({value:nextrops.value});
}
}
render(){
返回{this.state.value}
}
}
ReactDOM.render(,document.getElementById('app'))


无需在类内定义函数。这里有一个例子

在helpers.js中

export async function getAccessKey(){
let accessToken =  await AsyncStorage.getItem(ACCESS_TOKEN);
return accessToken;
}
在呼叫课上

import { getAccessKey } from '../components/helpers';
...
//inside the method
      let  key = await getAccessKey();

这不应该是:this.refs.otherComponent.addTag()?回答得很好,你能不能扩展一下
this.handleClick=this.handleClick.bind(this)
。似乎不需要它?@Mick是的,在这种情况下,它是必要的,以便使
在功能
handleClick
中工作。我认为这是一个不同的解决方案,因为在老年退休金问题上,另一个组成部分拥有国家,而不是主要组成部分。你救了我的命。非常感谢!
export async function getAccessKey(){
let accessToken =  await AsyncStorage.getItem(ACCESS_TOKEN);
return accessToken;
}
import { getAccessKey } from '../components/helpers';
...
//inside the method
      let  key = await getAccessKey();