react-native - 我怎样才能重构这小段代码,这样我就不会在渲染中调用函数
问题描述
我在这个页面上读到你不应该在渲染方法中创建函数。解决此问题的一种方法是绑定。
我的构造函数如下所示:
constructor(props) {
super(props);
this.idCheckAlert = this.idCheckAlert.bind(this);
}
我创建的功能:
idCheckAlert = (idForAPI) => () => {
//does some stuff with the idForApi
}
在我的渲染中:
<TouchableOpacity
style={styles.inputButton}
onPress={() => {
const idForAPI = this.userId;
this.idCheckAlert(idForAPI);
}}
>
我当前的重构如下所示:
<TouchableOpacity
style={styles.inputButton}
onPress={this.idCheckAlert(this.userId)}
>
但是,我想改为在 onPress 中创建一个变量,但是当我这样做时,我收到一条错误消息,上面写着意外的令牌。有没有办法让我在 onPress 中创建一个变量,而不必创建一个函数?
解决方案
就像你说的那样,在onPress里面创建变量不是一个好习惯,但是你可以在渲染之后做
const userId = 1;
return (
<TouchableOpacity
style={styles.inputButton}
onPress={this.idCheckAlert(userId)}
>
);
推荐阅读
- javascript - 从 Flask python 后端将数据流式传输到 axios Javascript 前端
- c# - 当我尝试在 MVVM WPF 中使用命令修改对象时,为什么在视图模型中出现空错误?
- r - 根据与r中其他数据帧中日期的差异将日期转换为时间序列
- asp.net-core - 在 OnModelCreating 之外添加全局过滤器
- java - 使用 Firestore 事务更新多个文档
- java - 如何在android中使用kotlin有效地避免多次点击菜单项
- html - Angular 9 Reactive Form - Array Form - 选择一个值以自动填充同一行中的其他单元格
- python - 用正则表达式替换python中两个标签周围的文本
- python - 如何使用环境变量子处理调用?
- r - 这个速度、年龄、里程和年份的公式是什么意思?