ich eine übergeordnete Komponente haben, PlanList:Reagieren Kind Komponente Zustand ist undefiniert
class PlanList extends Component {
constructor(props) {
super(props);
this.renderPlans = this.renderPlans.bind(this);
this.planListFilter = <PlanListFilter onChange={this.handleFilterChange.bind(this)} />
}
loadPlans() {
console.log(this.planListFilter);
// returns: Object {$$typeof: Symbol(react.element), key: null, ref: null, props: Object, _owner: ReactCompositeComponentWrapper…}
console.log(this.planListFilter.state);
// returns: undefined
// I expect it to return the state object i defined in the PlanListFilter constructor
// here I would apply the filters to the PlanTable
}
handleFilterChange(event) {
this.loadPlans();
}
render() {
return (
<div className="PlanList">
{this.planListFilter}
<PlanTable />
</div>
)
}
}
und ein Kind Komponente, PlanListFilter:
class PlanListFilter extends Component {
constructor(props) {
super(props);
this.state = {
search: '',
};
this.handleSearchChange = this.handleSearchChange.bind(this);
}
handleSearchChange(event) {
this.setState({search: event.target.value});
this.props.onChange(event);
}
render() {
return (
<FormControl type="text" placeholder="Search" onChange={this.handleSearchChange} value={this.state.search} />
);
}
}
Wenn der Text auf der Formcontrol zu ändern, die onChange
Eigenschaft ist wie erwartet abgefeuert, aber im übergeordneten Objekt state
des Kindes ist undefined
. Ich erwarte, dass es mit dem richtigen Status gefüllt wäre.
offensichtlich, es ist nicht im Konstruktor definiert .. – webdeb
Ja, es ist: 'Konstruktor (Requisiten) { Super (Requisiten); this.state = { suche: '', }; ' – Ben174
oh, ich sehe, du machst ein paar verrückte scheisse .. es ist nicht wie reagieren funktioniert .. – webdeb