Je suis nouveau dans React et Redux, alors pardonnez-moi si la réponse est triviale, mais après une recherche approfondie, je ne semble pas trouver une bonne réponse à cette question simple. J'ai plusieurs sélections en cascade où les données sont remplies en fonction de la sélection précédente. Tout fonctionne bien lorsque l'utilisateur change l'option sélectionnée. Cependant, je n'arrive pas à trouver comment déclencher l'événement onChange lorsque les données sont initialement chargées dans la première sélection ? Voici le composant simplifié :
import React, {Component} from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { locationActions } from '../../_actions';
import { Input, Col, Label, FormGroup } from 'reactstrap';
class HeaderSetup extends React.Component {
constructor(props) {
debugger;
super(props);
this.state = { location: 'Select an Option'};
}
componentWillReceiveProps(nextProps) {
if (nextProps.loading !== this.props.loading &&
nextProps.success !== this.props.success &&
!nextProps.loading && nextprops.success) {
this.setState({ location: '' });
}
}
onLocationChanged(e) {
console.log(e.target.value);
}
render() {
const { locations } = this.props;
return (
<FormGroup row>
<Label for="locations" sm={3}>Locations</Label>
<Col sm={8}>
{locations.items &&
<Input type="select" name="locations" id="locations"
onChange={this.onLocationChanged}
value={this.state.location}>
{locations.items.map((location, index) =>
<option key={location.id}>
{location.locationName}
</option>
)}
</Input>
}
</Col>
</FormGroup>
)
}
}
function mapStateToProps(state) {
debugger;
const { locations } = state;
return {
locations
};
}
export default connect(mapStateToProps)(HeaderSetup);
Dois-je simplement le déclencher manuellement ? Si oui, quel est le meilleur endroit/la meilleure façon de le faire ? Toute aide est la bienvenue !