New to React Native and JS as a whole. I'm trying to learn to set state and work with classes. How do I set value to the changed value of the <RangeSlider> component?
Getting this error: ReferenceError: value is not defined
Thanks for the help in advance and apologies for the noob question. If I could get a description or explanation on different ways to handle the scope of variables as well and the manipulation that would be appreciated.
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
value: 0
};
}
render() {
return(
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Form>
<Form.Group>
<Form.Label>
Mood
</Form.Label>
<RangeSlider
value={this.state.value}
onChange={this.setState(value)}
min={1}
max={5}/>
</Form.Group>
</Form>
</View>
);
}
}
CodePudding user response:
When you do setState, you have to pass in an object, and when you have an onChange you need to pass a function, so you probably want either
onChange={(e) => this.setState({value: e.target.value})}
or
onChange={(value) => this.setState({value})}
depending on what RangeSlider returns in it's onChange function (the event or just the value) and you should be good to go
