我正在使用https://github.com/jacklam718/reaeact-native-dialog-component用于我的对话框,并且我在异步函数上遇到一些问题,而不是刷新对话框。我在示例中使用
的示例中使用它 render() {
return (
...
<Button onItemPressed={(item) => {
this.completeMovementDialog.show()
}}/>}
...
<CompleteMovementDialog onRefresh={() => this.getStationsNearToPlayer()}
ref={(completeMovementDialog) => {
this.completeMovementDialog = completeMovementDialog;
}}/>
完整的Dialog使用componentDidMount()
中的onrefresh方法,是DialogComponent
的包装器。当我刷新列表时,它可以正常工作,这是由this.getStationsNearToPlayer()
从后端检索的。问题在于,一旦加载了该组件,CompleteMovementDialog
组件就会加载。因此,当我调用this.startMovementDialog.show()
时,它不再进入componentDidMount
,除非您手动刷新它,否则列表永远不会刷新。有人有提示吗?我如何在show()
之前预测列表刷新列表?还是有更好的库可以显示对话框?我听说ref
不是一个好习惯...
对于某人绊倒的人:
DialogComponent
提供onShown
和onDismissed
属性,您可以在其中传递一个函数,这可以是API调用。我通过将数据加载到onShown
回调中,然后再次将视图设置为加载模式,然后将视图设置为"对话框"并进行onDismissed
回调。