第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Redux 狀態(tài)問題:類型錯(cuò)誤:未定義不是對(duì)象

Redux 狀態(tài)問題:類型錯(cuò)誤:未定義不是對(duì)象

四季花海 2023-09-14 17:47:07
我對(duì)原生和 Redux 的反應(yīng)很陌生,特別是我收到了一條我真的很難處理的錯(cuò)誤消息。這是我收到的錯(cuò)誤TypeError:未定義不是對(duì)象(評(píng)估 '(0, _reactRedux.useSelector)(function (state) { return state.myPigeons.myPigeons; }).length')我將在這里向您展示迄今為止我得到的所有相關(guān)代碼,然后解釋我這一切背后的意圖。主屏.jsPigeon.js(動(dòng)作)export const ADD_PIGEON = 'ADD_PIGEON';export const addPigeon = () => {    return {type: ADD_PIGEON}};Pigeon.js(減速器)import {ALLPIGEONS} from '../../data/pigeons_data';import { ADD_PIGEON } from '../actions/pigeon';const initialPigeonState = () => {    myPigeons = []};const pigeonReducer = (state = initialPigeonState, action) => {    switch(action.type){        case ADD_PIGEON:{            var generatedPigeon = Math.floor(Math.random() * ALLPIGEONS.length);            generatedPigeon.nickname = "Kuba";            var updatedPigeons = [...state.myPigeons, generatedPigeon]            return{...state, myPigeons: updatedPigeons}        }    };    return state;};export default pigeonReducer;鴿子數(shù)據(jù).jsimport pigeon from '../models/pigeon';const ALLPIGEONS = [    new pigeon(        1,        "red",        "Red-billed pigeon",        " "    ),    new pigeon(        2,        "blue",        "Blue pigeon",        " "    ),    new pigeon(        3,        "white",        "Release dove",        " "    ),    new pigeon(        4,        "brown",        "Brown cuckoo-dove",        " "    ),    new pigeon(        5,        "green",        "Green pigeon",        " "    ),];export default ALLPIGEONS;應(yīng)用程序.js//Automatic importsimport { StatusBar } from 'expo-status-bar';import React, {useState} from 'react';import { StyleSheet, Text, View } from 'react-native';import { Provider } from 'react-redux';//My importsimport * as Font from 'expo-font';import {AppLoading} from 'expo';import ReduxThunk from 'redux-thunk';import { createStore, combineReducers, applyMiddleware } from 'redux';這里的問題基本上是我想在 redux 中有一個(gè)狀態(tài),其中存儲(chǔ)我所有的鴿子(我的狀態(tài)現(xiàn)在應(yīng)該是空的,因?yàn)槲覜]有向我的狀態(tài)添加任何鴿子)并且在我單擊主屏幕中的按鈕后。在 Node.js 中我向狀態(tài)添加了一只鴿子,以便文本可以顯示我有多少只鴿子。現(xiàn)在,當(dāng)我進(jìn)入主屏幕時(shí),應(yīng)用程序總是崩潰。我很感謝任何幫助!
查看完整描述

4 回答

?
萬千封印

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊

main.js 中的 state.myPigeons 在啟動(dòng)應(yīng)用程序時(shí)未定義。如果您嘗試對(duì) redux 對(duì)象執(zhí)行某些操作,則應(yīng)在其中定義該值。最好的方法是始終在代碼中進(jìn)行防御性檢查,以檢查對(duì)象是否“未定義”。



查看完整回答
反對(duì) 回復(fù) 2023-09-14
?
嚕嚕噠

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊

這段代碼看起來不對(duì)


var generatedPigeon = Math.floor(Math.random() * ALLPIGEONS.length);

generatedPigeon.nickname = "Kuba";


嘗試更多類似


var generatedPigeonNo = Math.floor(Math.random() * ALLPIGEONS.length);

var generatedPigeon= ALLPIGEONS[generatedPigeonNo];

generatedPigeon.nickname = "Kuba";


查看完整回答
反對(duì) 回復(fù) 2023-09-14
?
子衿沉夜

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

如果有人仍然試圖找出給定代碼中的問題,我想我明白了;

const initialPigeonState = () => {
    myPigeons = []
};

這就是整個(gè)問題。這里initialPigeonState定義為一個(gè)不返回任何東西的函數(shù)。從而導(dǎo)致錯(cuò)誤。

現(xiàn)在為了消除錯(cuò)誤,我們可以定義initialPigeonState為;

initialPigeonState = {
    myPigeons: []
}

或者,如果您想將其保留為函數(shù),則從中返回一個(gè)對(duì)象;

const initialPigeonState = () => ({ 
   myPigeons: []
});

箭頭符號(hào)后面的括號(hào)表示return返回其內(nèi)部內(nèi)容(此處為對(duì)象)。


查看完整回答
反對(duì) 回復(fù) 2023-09-14
?
繁華開滿天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊

您在哪里聲明 MainScreen ?在 PB 導(dǎo)航器中?



查看完整回答
反對(duì) 回復(fù) 2023-09-14
  • 4 回答
  • 0 關(guān)注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)