在 React Native 中调用不调用 FlatList 内的函数
Call not call a function inside a FlatList in react native
我正在使用 React Native 开发应用程序。我想将参数传递给平面列表中的函数以获取特定记录。但是,平面列表忽略了这行代码:
onPress={ () => {console.log("TEST1"); this.onPressTopUp()} } />
这是我的代码:
<FlatList
ItemSeparatorComponent={ () => <View style={ styles.rowSep } /> }
horizontal={false}
data={this.state.result}
renderItem={
({item}) => (
<View style={styles.containerrow}>
<View style={styles.viewPark}>
<Text style={styles.itemBold}> {I18n.t('Data_e_ora_inizio')}:
<Text style={styles.itemNormal}>{item.start}</Text></Text>
<Text style={styles.itemBold}> {I18n.t('Data_e_ora_termine')}:
<Text style={styles.itemNormal}>{item.end}</Text></Text>
<Text style={styles.itemBold}> {I18n.t('Energia')}: <Text style={styles.itemNormal}>{item.energy_delivered}</Text></Text>
<Text style={styles.itemBold}> {I18n.t('Colonna')}: <Text style={styles.itemNormal}>{item.column_id}</Text></Text>
<Text style={styles.itemBold}> {I18n.t('Costo_della_ricarica')}:
<Text style={styles.itemNormal}>€ {item.amount}</Text></Text>
<Text style={styles.itemBold}> {I18n.t('Aggiornamento_del')}:
<Text style={styles.itemNormal}>{item.last_update}</Text></Text>
</View>
<View style={styles.rowCenter}>
<Button label={I18n.t('Via_questa_ricarica')} color={defStyleValues.RechargeElectricCar} onPress={ () => {console.log("TEST1"); this.onPressTopUp()} } />
</View>
</View>
)
}
keyExtractor={item => item.id}
/>
这也是我的功能:
onPressTopUp(columnID){
console.log("TEST2, ", columnID);
}
换句话说,我的问题是我需要将每个特定行的 columnID 传递给 FlatList 中的 onPressTopUp(columnID)
函数。我检查了控制台日志,即使它没有同时显示 TEST1 和 TEST2。你能帮我做吗?
我认为问题是你没有 bind
onPressToUp
功能,试试这个:
onPressTopUp = (columnID) => {
console.log("Test, ", columnID);
}
只需使用 Arrow Function ,它会负责绑定。
你的函数是:-
onPressTopUp(columnID){
console.log("TEST2, ", columnID);
}
替换为箭头函数 :- 它会为你工作。
onPressTopUp = (columnID) => {
console.log("Test, ", columnID);
}
并更改您的标签 属性 并在您的按钮内添加标题
您可以像下面这样使用 Button :-
import { Button } from 'react-native';
...
<Button
onPress={onPressLearnMore}
title="Learn More"
color="#841584"
accessibilityLabel="Learn more about this purple button"
/>
Button组件是从React Native导入的吗?因为 React 原生 Button 组件没有标签 属性。
您是否尝试使用像这样的列 ID 调用函数 this.onPressTopUp(15)。
希望对您有所帮助。
我正在使用 React Native 开发应用程序。我想将参数传递给平面列表中的函数以获取特定记录。但是,平面列表忽略了这行代码:
onPress={ () => {console.log("TEST1"); this.onPressTopUp()} } />
这是我的代码:
<FlatList
ItemSeparatorComponent={ () => <View style={ styles.rowSep } /> }
horizontal={false}
data={this.state.result}
renderItem={
({item}) => (
<View style={styles.containerrow}>
<View style={styles.viewPark}>
<Text style={styles.itemBold}> {I18n.t('Data_e_ora_inizio')}:
<Text style={styles.itemNormal}>{item.start}</Text></Text>
<Text style={styles.itemBold}> {I18n.t('Data_e_ora_termine')}:
<Text style={styles.itemNormal}>{item.end}</Text></Text>
<Text style={styles.itemBold}> {I18n.t('Energia')}: <Text style={styles.itemNormal}>{item.energy_delivered}</Text></Text>
<Text style={styles.itemBold}> {I18n.t('Colonna')}: <Text style={styles.itemNormal}>{item.column_id}</Text></Text>
<Text style={styles.itemBold}> {I18n.t('Costo_della_ricarica')}:
<Text style={styles.itemNormal}>€ {item.amount}</Text></Text>
<Text style={styles.itemBold}> {I18n.t('Aggiornamento_del')}:
<Text style={styles.itemNormal}>{item.last_update}</Text></Text>
</View>
<View style={styles.rowCenter}>
<Button label={I18n.t('Via_questa_ricarica')} color={defStyleValues.RechargeElectricCar} onPress={ () => {console.log("TEST1"); this.onPressTopUp()} } />
</View>
</View>
)
}
keyExtractor={item => item.id}
/>
这也是我的功能:
onPressTopUp(columnID){
console.log("TEST2, ", columnID);
}
换句话说,我的问题是我需要将每个特定行的 columnID 传递给 FlatList 中的 onPressTopUp(columnID)
函数。我检查了控制台日志,即使它没有同时显示 TEST1 和 TEST2。你能帮我做吗?
我认为问题是你没有 bind
onPressToUp
功能,试试这个:
onPressTopUp = (columnID) => {
console.log("Test, ", columnID);
}
只需使用 Arrow Function ,它会负责绑定。
你的函数是:-
onPressTopUp(columnID){
console.log("TEST2, ", columnID);
}
替换为箭头函数 :- 它会为你工作。
onPressTopUp = (columnID) => {
console.log("Test, ", columnID);
}
并更改您的标签 属性 并在您的按钮内添加标题
您可以像下面这样使用 Button :-
import { Button } from 'react-native';
...
<Button
onPress={onPressLearnMore}
title="Learn More"
color="#841584"
accessibilityLabel="Learn more about this purple button"
/>
Button组件是从React Native导入的吗?因为 React 原生 Button 组件没有标签 属性。 您是否尝试使用像这样的列 ID 调用函数 this.onPressTopUp(15)。 希望对您有所帮助。