React native 使用react native router flux在表示组件中识别右上角的按钮单击
我的应用程序场景使用一个容器组件,它调用一个表示组件 我可以在容器组件中创建右上角按钮,如下所示:React native 使用react native router flux在表示组件中识别右上角的按钮单击,react-native,react-native-router-flux,React Native,React Native Router Flux,我的应用程序场景使用一个容器组件,它调用一个表示组件 我可以在容器组件中创建右上角按钮,如下所示: static right = () => { return ( <TouchableOpacity onPress={() => buttonPressed()}> <Text style={styles.rightButtonText}>Done</Text> </TouchableOpacity>
static right = () => {
return (
<TouchableOpacity onPress={() => buttonPressed()}>
<Text style={styles.rightButtonText}>Done</Text>
</TouchableOpacity>
);
};
现在,我试图让右上角的按钮被表示组件识别,这样它就可以保存数据
我可以通过将函数作为道具从容器组件发送到表示组件,在两者之间进行通信。当它从presentational组件调用时,它在容器组件中被调用
但是我没有找到方法让容器组件中的staticright函数听到presentational组件中的单击,然后采取适当的操作
我和其他几个人一起尝试过,包括Action.refresh,但都没有成功。我曾想过使用state,但我无法访问state或this。如果我使用的是静态函数。但是去除静电会使按钮完全消失
提前感谢您的帮助。我过去也遇到过类似的挑战。我处理的方法如下,主要是直接从代码库中获取的。请注意,这些方法与您提供的示例类似,但这可能对您有意义 •集装箱组件 具有处理业务逻辑的updateAccount函数。这将作为道具传递到表示组件中 •表象成分 突出显示演示组件中的2个特定功能: 手换 在文本输入更改时,将触发此功能,并在状态下更新输入中的数据 当调用该函数时,我们知道表单已经更改,因此我们希望在react native router flux导航栏中显示一个“save”按钮,点击该按钮将触发容器的updateAccount。所以我们称之为toggleSaveButton: 切换保存按钮 如果this.state.formChanged为true,则表单已更改,因此请添加保存按钮供用户点击,否则将其隐藏,例如,我可能会在表单提交成功时隐藏
toggleSaveButton = () => {
const config = this.state.formChanged
? { rightTitle: 'Save', onRight: () => this.props.updateAccount(this.state) }
: { rightTitle: '', onRight: () => {} };
Actions.refresh(config);
};
非常感谢mcnamee,这正是我需要的。非常感谢。我无法实施图像更改:
toggleSaveButton = () => {
const config = this.state.formChanged
? { rightTitle: 'Save', onRight: () => this.props.updateAccount(this.state) }
: { rightTitle: '', onRight: () => {} };
Actions.refresh(config);
};