我是 React/Redux 的新手。任何帮助都会很棒。我有一个组件,它在 ComponentDidMount 上调用 API 来获取数据,然后更新我的 Redux 存储。该组件还使用 connect 来获取 Redux 状态并将其作为props传递给一个愚蠢的组件。
componentDidMount() {
this.props.dispatch(fetchSite()) //this triggers the api call and updates the redux store.
}
return (
<div>
<Child
myprop={this.props.name}
/>
</div>
export default connect((state) => ({name: state.name}))(Container);
因为componentDidMount在组件渲染后触发,会渲染,运行api,然后因为api改变了redux状态而重新渲染。这使得组件渲染两次。第一次没有任何数据,然后第二次有来自 api 的良好数据。
有没有更好的办法?
由于我的 Child 组件根据传递的 props 呈现不同的内容,因此在第一次呈现时会简要显示不同的内容。然后当 api 更新商店并且组件重新渲染时,它再次显示不同的东西。它是两种不同状态的闪烁。
有没有办法让它只用正确的 API 数据渲染一次?