J'essaie de remanier le code suivant de ma vue de rendu :
<Button href="#" active={!this.state.singleJourney} onClick={this.handleButtonChange.bind(this,false)} >Retour</Button>
à une version où le bind se trouve dans le constructeur. La raison en est que le bind dans la vue de rendu me donnera des problèmes de performance, en particulier sur les téléphones mobiles bas de gamme.
J'ai créé le code suivant, mais je reçois constamment les erreurs suivantes (beaucoup d'erreurs). Il semble que l'application soit dans une boucle :
Warning: setState(...): Cannot update during an existing state transition (such as within `render` or another component's constructor). Render methods should be a pure function of props and state; constructor side-effects are an anti-pattern, but can be moved to `componentWillMount`.
Voici le code que j'utilise :
var React = require('react');
var ButtonGroup = require('react-bootstrap/lib/ButtonGroup');
var Button = require('react-bootstrap/lib/Button');
var Form = require('react-bootstrap/lib/Form');
var FormGroup = require('react-bootstrap/lib/FormGroup');
var Well = require('react-bootstrap/lib/Well');
export default class Search extends React.Component {
constructor() {
super();
this.state = {
singleJourney: false
};
this.handleButtonChange = this.handleButtonChange.bind(this);
}
handleButtonChange(value) {
this.setState({
singleJourney: value
});
}
render() {
return (
<Form>
<Well style={wellStyle}>
<FormGroup className="text-center">
<ButtonGroup>
<Button href="#" active={!this.state.singleJourney} onClick={this.handleButtonChange(false)} >Retour</Button>
<Button href="#" active={this.state.singleJourney} onClick={this.handleButtonChange(true)} >Single Journey</Button>
</ButtonGroup>
</FormGroup>
</Well>
</Form>
);
}
}
module.exports = Search;
0 votes
J'ai le même problème, mais lié à onClick() : stackoverflow.com/questions/57079814/
0 votes
Même problème mais sans onClick() : stackoverflow.com/questions/57079814/