我有PopupDialog
组件,我试图在我的应用程序中实现,我努力使其在从函数内部调用时工作。
我的意思是,我有一个按钮,onPress
道具调用一个函数,我想添加到这个函数this.popupDialog.show();
,所以它也在同一个按下显示PopupDialog
。但是当它试图这样做时它不能正常工作而它只会打印出我屏幕右上角的Text
内的PopupDialog
。但是当我试图像这样调用它时:onPress={() => this.popupDialog.show()}
(没有this.functionX
)一切都按预期工作。
代码:
this.state.sumAll.map((detail) => (
<View key={detail[0]}>
<PopupDialog
ref={(popupDialog) => { this.popupDialog = popupDialog; }}
>
<View>
<Text>Hello</Text>
</View>
</PopupDialog>
<MapView.Marker
key={Math.random()}
coordinate= {
{
latitude: this.latIfUndefined(detail[0]),
longitude: this.lonIfUndefined(detail[1])
}
}
title={this.props.address}
description={``}
onPress={() => this.functionX()}
image={require('../../assets/img/1.png')}
/>
</View>
))
注意:上面的代码this.popupDialog.show();
位于this.functionX()
内且无法正常工作,只需在屏幕的右上角打印hello
即可在渲染视图时。
但代码是:
this.state.sumAll.map((detail) => (
<View key={detail[0]}>
<PopupDialog
ref={(popupDialog) => { this.popupDialog = popupDialog; }}
>
<View>
<Text>Hello</Text>
</View>
</PopupDialog>
<MapView.Marker
key={Math.random()}
coordinate= {
{
latitude: this.latIfUndefined(detail[0]),
longitude: this.lonIfUndefined(detail[1])
}
}
title={this.props.address}
description={``}
onPress={() => this.popupDialog.show();}
image={require('../../assets/img/1.png')}
/>
</View>
))
一切正常。问题是我需要this.functionX
来调用这两个函数。无法管理它。