Я хочу установить динамическое состояние в зависимости от того, какая функция вызывается, я знаю, если мы не можем setstate
при рендеринге, но все же мне нужно сделать это, чтобы установить динамическое состояние,
есть какой-то способчтобы сделать это возможным?
export default class Foo extends Component {
constructor(props) {
super(props);
this.state={
dynamicView:false
}
}
renderText(key, value){
this.setState({[key]:value})
<Text>Simple render</Text>
}
renderButton(key, value){
this.setState({[key]:value})
<Text>Simple render</Text>
}
render(){
return(
<View>
{this.state.dynamicView ? this.renderButton("button","ValueButton") : this.renderText("text", "valueText")}
<Button
title="change Component"
onPress={()=>this.setState({dynamicView:!this.state.dynamicView})}
/>
<Button
title="Isi State"
onPress={()=>alert(JSON.stringify(this.state,null,4))}
/>
</View>
)
}
}
с этим кодом я могу установить динамическое состояние, но проблема в том, что оба из component function
вызваны, у меня есть два состояния (button and text)
, я хочу избежать этого,так что у меня просто 1 состояние (button / text)
в зависимости от того, какой компонент отображается,
как я могу это сделать?
Примечание: это всего лишь простой вариант использования, всенужно знать, это установить состояние в зависимости от того, какая функция вызывается