几个月不工作后再次安装ReactJS之后,我注意到最新版本(16)现在正在使用getDerivedStateFromProps,并且不再有props函数和东西了。
目前,我的环境中包含react-redux。我的新数据进入了容器脚本的mapStateToProps函数,但是我想相应地更新视图。基本上是一个加载屏幕,在通过API调用获取数据后,请使用API的响应数据更新视图。 但是,到目前为止,我似乎还找不到能够更新我的视图的解决方案。
我注意到getDerivedStateFromProps仅被触发一次。
我缺少某些功能吗? 简短示例:
import React from 'react';
import { connect } from "react-redux";
import Files from '../components/files';
class ProjectContainer extends React.Component {
constructor(props) {
super(props);
}
componentDidMount() {
this.props.getFilesByShare('sharename');
}
componentDidUpdate (prevProps) {
console.warn('does not get here?');
}
render() {
const { loading, files } = this.props;
let content = (
<div className="loading">Loading... Requesting file urls</div>
);
if (!loading && files && files.length) {
content = (
<div>
File urls requested!
<Files files={files} />
</div>
);
}
return (
{content}
);
}
}
const mapStateToProps = state => {
console.warn(state, 'this shows the new data');
return {
files: state.files,
loading: state.files_loading,
};
};
export default connect( mapStateToProps, {
getFilesByShare,
}) (ProjectContainer);