大家好。onClick
在渲染期间,会为每个输出块触发一个事件。按下时onClick
,它不起作用。
<View style={styles.blockTraining}>
{
this.state.events.length > 0 ? (
this.state.events.map((value) => {
return <Card onClick={this.navToEvent()} key={value.event.id}>
<Text style={styles.activeTraining}>{value.event.name}
</Text>
<View style={styles.textTraining}>
<View>
<Text style={styles.valuesTraining}>Старт: {value.event.startDate}</Text>
<Text style={styles.valuesTraining}>Тренер: {value.event.lector.person.fullname}</Text>
<Text style={styles.valuesTraining}>Место:</Text>
</View>
<View>
<Icon
name='check'
type='evilicon'
color='#228B22'
size={30}
/>
</View>
</View>
</Card>
})
) : (
<ActivityIndicator
size="large"
color="#EA329A"
style={styles.loader}
/>
)
}
</View>
为什么
onClick
渲染后事件会触发?或者为什么每次渲染组件时都会调用该函数?一切都很简单,答案如下。确保在将函数传递给组件时不调用函数:
相反,传递函数本身(不带括号):
有用的链接: