Привет! Я создал компонент списка в React Native для своей страницы настроек.Я хочу, чтобы у каждого компонента на странице настроек была функция (в некоторых случаях нет).
Я создал array
с objects
, где я размещаю атрибут каждого элемента.
const list = [
{
title: 'Change user settings',
icon: 'account-circle',
link: 'UserEdit',
action: this.noFunction()
},
{
title: 'Logout',
icon: 'exit-to-app',
link: 'Auth',
action: this.sessionFunction()
},
]
Сейчас у меня есть два элемента списка, каждый со своей собственной функцией, примененной к их атрибуту action
.
Когда я нажимаю один listItem
в моем приложении, он вызываетобе функции.
Однако я хочу, чтобы была применена только функция, связанная с приложением.
Как я могу это сделать?И что в моем коде вызывает эту ошибку?
noFunction(){
console.log('noFunction')
}
sessionFunction =() => {
console.log('sessionFunction')
this.deleteSession().then(() => {
this.props.destroySession();
})
}
render(){
const list = [
{
title: 'Change user settings',
icon: 'account-circle',
link: 'UserEdit',
action: this.noFunction()
},
{
title: 'Logout',
icon: 'exit-to-app',
link: 'Auth',
action: this.sessionFunction()
},
]
return (
<View>
{
list.map((item, i) => (
<ListItem
key={i}
title={item.title}
leftIcon={
{ name: item.icon }
}
onPress={() => {
item.action
this.props.navigation.navigate(item.link)
}}
/>
))
}
</View>
)
}
}