【发布时间】:2020-07-21 15:34:20
【问题描述】:
您好,我在重新渲染下面的组件时遇到问题,您可以在第一个屏幕中看到我的代码,其中我有一个自定义组件:
class Ahelle extends React.Component{
constructor(props){
super(props)
this.state={
mamad:10
}
}
render(){
return (
<View style={{backgroundColor:"white"}}>
<ScrollView>
<CustomSlider defaultValue={0} />
<CustomSlider defaultValue={this.state.mamad} disabled={true}/>
<TouchableOpacity style={{width:100,height:100,alignSelf:"center"}} onPress={()=>{this.setState({mamad:20})}}><Text>dddd</Text></TouchableOpacity>
</ScrollView>
</View>
);
}
}
这里我有一个自定义组件,我传递了一个默认值来显示,但是当我改变 state 时,它并没有改变我作为 props 传递的值。 这是我的自定义滑块组件及其状态、道具和任何其他详细信息。
class Test extends React.Component{
constructor(props){
console.log(props)
super(props)
this.state = {
value: props.defaultValue
};
}
render(){
return(
<Slider
style={{width: wp("70%")}}
value={this.state.value}
/>
)
}
}
export default Test;
SEE THE PROBLEM IN ACTION 感谢您的宝贵时间
【问题讨论】:
-
代码似乎没问题。也许您正在检查第一个 CustomSlider 中的道具。您有 2 个自定义滑块。一个是
defaultValue={0},另一个是defaultValue={this.state.mamad} -
这似乎应该引发关于将不受控组件更改为受控组件的错误。默认值不应该改变。您的意思是传递
this.state.mamad作为值吗? 为了将来参考,请发布代码 sn-ps 与图像,它们更难阅读且不可搜索。 -
不,我以两个为例,当我设置新状态时,传递的值不会改变@kapilpandey
-
是的,我想在此页面上进行一些计算后更改值@DrewReese
-
@DrewReese 我编辑并发布了代码,
标签: javascript reactjs react-native state