通过外部交互更新 React 组件状态
IT技术
javascript
reactjs
2021-05-07 12:39:43
1个回答
提升状态是典型的答案。你最终会得到这样的结果:
class Parent extends Component {
// could get this from Redux if you wanted
state = { dateRange: null };
// could be a redux action if you wanted
onDateRangeChange = dateRange => this.setState({ dateRange });
// could be a redux action if you wanted
resetDateRange = () => this.onDateRange(null);
render() {
const {dateRange} = this.state;
return (
<div>
<SomeComponentThatEventuallyRendersReset onReset={this.resetDateRange} />
<SomeComponentThatEventuallyRendersDateControl
onDateRangeChange={this.onDateRangeChange}
dateRange={dateRange}
/>
</div>
);
}
}
您的重置控件可能类似于:
const ResetControl = ({onClick}) => (<button type="button" onClick={onClick}>Reset</button);
您的日期选择器可能是这样的:
class DatePicker extends Component {
state = { any transient state you need before "submitting" changes to your parent };
onSelection = (value) => this.props.onDateRangeChange(value);
render() {
return <Whatever onChange={this.onSelection} onValue={this.props.dateRange} />;
}
}