Reactjs 组件多次重新渲染并重复添加默认用户
在这一点上,我无法再直接思考这个问题: 我有一个可以创建“基本”的应用程序。当访问新创建的基本组件时,该组件会获取一个用户列表,然后在新组件上呈现:Reactjs 组件多次重新渲染并重复添加默认用户,reactjs,redux,Reactjs,Redux,在这一点上,我无法再直接思考这个问题: 我有一个可以创建“基本”的应用程序。当访问新创建的基本组件时,该组件会获取一个用户列表,然后在新组件上呈现: componentDidMount() { this.props.dispatch(fetchUsersOfList()); } 后台的减速器将用户添加到状态(如果有)。默认值为: const initialState = { userBases: [], } 当访问新创建的组件时,我想添加(POST请求)一个默认用户(即基础的
componentDidMount() {
this.props.dispatch(fetchUsersOfList());
}
后台的减速器将用户添加到状态(如果有)。默认值为:
const initialState = {
userBases: [],
}
当访问新创建的组件时,我想添加(POST请求)一个默认用户(即基础的创建者)并显示它。我只希望这样做一次,并希望通过检查防止添加一次以上:
render() {
if (
this.props.userBases.length !== 0 &&
this.props.currentBase.id !== undefined
) {
const userName = this.props.currentAuthUser;
const baseId = this.props.currentBase.id;
const acceptedMembership = true;
const isCreator = true;
this.props.dispatch(
addUserToList(baseId, userName, acceptedMembership, isCreator)
);
}
不知何故,我对if语句的理解非常混乱,这样的请求即使不是几百次,也会被激发几十次。汇编一个if语句返回一个简单的.map用户库(如果存在),或者添加并显示一个与用户库创建者同名的默认用户,这有多困难?因为您在componentDidMount中调用fetchUsersOfList(),它将强制重新呈现。尝试将逻辑移到componentWillMount
编辑:每次在reducer中设置状态时,它也将强制重新渲染这是一个坏主意:
注意:这些方法被认为是遗留的,您应该在新代码中避免它们:UNSAFE_component willmount()