首页 > 解决方案 > 将 componentDidUpdate(prevProps) 重写为钩子

问题描述

我想把这个生命周期方法改写成一个钩子:

componentDidUpdate(prevProps) {
  if (this.props.lng !== prevProps.lng && this.props.lat !== prevProps.lat) {
    this.map.setView(new L.LatLng(this.props.lat, this.props.lng), 6);
  } else if (this.props.mapTheme !== prevProps.mapTheme) {
    this.setMapTheme(this.props.mapTheme);
  }
}

我知道使用 useEffect 钩子,但找不到一个很好的例子。

标签: javascriptreactjsreact-hooks

解决方案


useEffect(() => {
  map.setView(new L.LatLng(props.lat, props.lng), 6);
}, [props.lng, props.lat]);

useEffect(() => {
  setMapTheme(props.mapTheme);
}, [props.mapTheme]);

推荐阅读