Я работаю с встроенным реагентом и хочу передать функцию и некоторые данные из класса Component другому классу Stateless , но я не смог передать функцию и часть данных.
Здесь вы можете увидеть мой класс Component:
class Classroom extends Component {
constructor(props, context) {
super(props, context);
};
state = {
isLightOn: false,
title : "Turn light on "
}
onPress() {
this.setState({isLightOn: !this.state.isLightOn})
console.log(this.state.isLightOn)
this.setState({title:this.state.isLightOn===false ?"Turn light off":"Turn light on"})
}
render() {
return (
<View style={styles.blue}>
<LightBulb isLightOn={this.state.isLightOn}> </LightBulb>
<LightButton onPress={this.onPress} isLightOn={this.state.isLightOn} title={this.state.title} > </LightButton>
</View>
);
}
}
Во-первых, я хочу передать isLightOn и title данные в мой класс LightButton (что означает для моего класса без состояния). После этого я хочу использовать функцию onPress внутри моего класса Stateless, но не могу использовать. Я беру эту ошибку:
Превышена максимальная глубина обновления. Это может произойти, когда компонент многократно вызывает setState внутри componentWillUpdate или componentDidUpdate. React ограничивает количество вложенных обновлений, чтобы предотвратить бесконечные циклы.
Я также LightButton onPress = {this.onPress} удаляю круглые скобки, но все равно ошибаюсь.
Вот мой мой Stateless class
const LightButton = ({onPress,isLightOn,title}) => (
<View style={styles.red}>
<Button
title= {title}
onPress={() => {}
}
/>
</View>
)
Я хочу использовать функцию onPress и данные внутри этого класса. В результате, как я могу передать функцию и данные этому классу?