【发布时间】:2020-09-27 17:13:52
【问题描述】:
我正在使用 React 中的 Algolia,参考以下示例:
对于我的项目,虽然我使用的是功能组件。我试图弄清楚如何将 App 组件用作功能组件,但在弄清楚这部分代码时遇到了一些麻烦:
state = {
searchState: urlToSearchState(this.props.location),
lastLocation: this.props.location,
};
static getDerivedStateFromProps(props, state) {
if (props.location !== state.lastLocation) {
return {
searchState: urlToSearchState(props.location),
lastLocation: props.location,
};
}
return null;
}
onSearchStateChange = searchState => {
clearTimeout(this.debouncedSetState);
this.debouncedSetState = setTimeout(() => {
this.props.history.push(
searchStateToUrl(this.props, searchState),
searchState
);
}, DEBOUNCE_TIME);
this.setState({ searchState });
};
我之前在函数式组件中处理过状态,但这看起来让我有些困惑。有没有办法把它写成一个功能组件,特别是上面代码中的状态?
【问题讨论】:
标签: javascript reactjs