大佬教程收集整理的这篇文章主要介绍了如何修复 React Native 上的重复后端调用问题,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们在我们的项目中使用了 mongoDB 和 redux。当我们导航到一个页面时,获取我们想要从 redux 存储中检索的播放器的 ID 并将其传递给组件。下面的屏幕截图显示了我的 console.log 到这家商店的 ID。我们还获得了玩家的属性和详细信息。奇怪的是我们在页面上看不到我们的结果。但是,如果我们返回并再次进入该页面,并且执行此操作正好 3 次,则会得到结果。我使用 console.log 进行跟踪,我看到在单个页面加载中我得到了这个 console.log s 三次。这是一个非常奇怪的问题,我们无法理解为什么会发生这种情况。是因为导航、redux 还是其他原因?我将输出粘贴到代码下的单个页面加载上。
const { ID } = route.params;
console.log(" on players detail page ID is: " + ID);
const dispatch = usedispatch();
useEffect(() => {
dispatch(playerCardActions.getPlayerCardInfo(ID));
dispatch(playerAttributeActions.fetchPlayerAttributes(ID));
},[dispatch]);
const playerCard = useSELEctor(
(statE) => state.playerCardStore.SELEctedplayerCard
);
console.log(" on players detail page playercard is: " + playerCard);
const playerAttribute = useSELEctor(
(statE) => state.playerAttributeStore.SELEctedplayerAttribute
);
console.log(" on players details page playerattr is: " + playerAttributE);
在玩家详细信息页面 ID 是:604a8e1d83a1a09b8a61afb9
在玩家详情页面 playercard 是:[object Object],[object Object],[object Object]
在玩家详情页面 playerattr 是:[object Object]
在玩家详细信息页面 ID 是:604a8e1d83a1a09b8a61afb9
在玩家详情页面 playercard 是:[object Object]
在玩家详情页面 playerattr 是:[object Object]
在玩家详细信息页面 ID 是:604a8e1d83a1a09b8a61afb9
在玩家详情页面 playercard 是:[object Object]
在玩家详情页面 playerattr 是:[object Object]
您可以在下方找到商店代码
import ReduxThunk from "redux-thunk";
import { applymIDdleware,combineReducers,createStore } from "redux";
import { composeWithDevTools } from "redux-devtools-extension";
import playerCardReducer from "./reducers/playerCard-reducer";
import playerAttributeReducer from "./reducers/playerAttribute-reducer";
import playerStatisticsReducer from "./reducers/playerStatistics-reducer";
import playerDetailsReducer from "./reducers/playerDetails-reducer";
import playerReducer from "./reducers/player-reducer";
const rootReducer = combineReducers({
playerCardStore: playerCardReducer,playerAttributeStore: playerAttributeReducer,playerStatisticsstore: playerStatisticsReducer,playerDetailsstore: playerDetailsReducer,playerStore: playerReducer,});
const mIDdleware = composeWithDevTools(applymIDdleware(ReduxThunk));
export default createStore(rootReducer,mIDdlewarE);
我还添加了下面的减速器代码之一
import {
CREATE_PLAYER_DETAILS,GET_DETAILS_OF_PLAYER,updatE_PLAYER_DETAILS,} from "../actions/playerDetails-action";
import PlayerDetails from "../../models/PlayerDetails";
const initialState = {
SELEctedplayerDetails: null,};
export default (state = initialState,action) => {
switch (action.typE) {
case GET_DETAILS_OF_PLAYER:
return { SELEctedplayerDetails: action.SELEctedplayerDetails };
case CREATE_PLAYER_DETAILS:
const newDetails = new PlayerDetails(
action.SELEctedplayerDetails.playerID,action.SELEctedplayerDetails.phone,action.SELEctedplayerDetails.email,action.SELEctedplayerDetails.height,action.SELEctedplayerDetails.weight,action.SELEctedplayerDetails.playerCardID,action.SELEctedplayerDetails.attributesID,action.SELEctedplayerDetails.statisticsID
);
return (state.SELEctedplayerDetails = newDetails);
case updatE_PLAYER_DETAILS:
const updatedDetails = new PlayerStatistics(
action.SELEctedplayerDetails.playerID,action.SELEctedplayerDetails.statisticsID
);
return (state.SELEctedplayerDetails = updatedDetails);
}
return state;
};
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的如何修复 React Native 上的重复后端调用问题全部内容,希望文章能够帮你解决如何修复 React Native 上的重复后端调用问题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。