Ниже приведен код, который генерирует серию кнопок. Когда начальный рендеринг имеет место, функция определяет, есть ли у элемента реквизит, называемый init. Если он делает это, он выполняет действие, как если бы эта кнопка была нажата.
Технически этот код работает, но он выдает предупреждение, поскольку он эффективен, вызывая повторную визуализацию в середине визуализации. Как вы запускаете эффективные функции OnRender?
export class NavTabItem extends React.Component {
constructor(props) {
super(props);
global.register(this, 'screen')
}
NavTabAction = () => {
global.setState({
screen: this.props.screen,
})
}
render() {
// determine whether the element has the prop of init and if it does click on it.
if(this.props.init){
this.NavTabAction()
}
return (
<TouchableOpacity onPress={this.NavTabAction}>
<View style={global.state.screen == this.props.screen ? [styles.NavTabItem, styles.NavTabItemSelected] : styles.NavTabItem}>
<View style={styles.NavTabIcon} />
<TextCap11 style={styles.NavTabLabel}>{this.props.children}</TextCap11>
</View>
</TouchableOpacity>
);
}
}