首页 > 解决方案 > 无法读取未定义的属性“地图”。错误还原

问题描述

Redux 报错。我找不到错误

我不明白我在哪里犯了错误。在创建 redux 之前一切正常。错误出现在“header.jsx”第 10 行:

'让 newPosts = props.state.post.map (p => );' 在此处输入图像描述 类型错误:无法读取未定义的属性“地图”。redux 后的错误帮我找了一个 bug

'redux-store.js'

    import {createStore, combineReducers} from "redux/es/redux";
    import postReducer from "./postReducer";



    let reducers = combineReducers( {
    postPage: postReducer,
    addsPosts: postReducer
    });


    let store = createStore(reducers);

    export default store;

'postReducer.js'

 let initialState = {

    post:[

        { id: 1, posts: "Hello.Im a development this social networks. Welcome :)" },
        { id: 2, posts: "Yessssss! This start my first page" }

    ],

    postAdd: [
        {messagePost: ""}
    ]
};

export const postReducer = (state = initialState, action) => {
    switch (action.type) {
        case 'ADD-POST':
            let newPost =
            {
                id: 4,
                posts: action.newMessage
            };
            state.post.push(newPost);
            state.newMessage = '';
            return state;

        case 'UPDATE-POST':
            state.postAdd.messagePost = action.newText;
            return state;
        default: return state;

    }

};


export const addpostCreater = (text) => {
    return { type: 'ADD-POST', newMessage: text }
};

export const updatepostCreater = (text) => {
    return { type: 'UPDATE-POST', newText: text }
};


export default postReducer;

'header.jsx'

import React from 'react';
import cssmod from './header.module.css';
import Mypost from './../components/mypost';
import { NavLink } from 'react-router-dom';
import { addpostCreater, updatepostCreater } from "../redux/postReducer";


const Header = (props) => {

    let newPosts = props.state.post.map (p => <Mypost id={p.id} posts={p.posts} />);

    let newpostElement = React.createRef();

    let addPost = () => {
        let text = newpostElement.current.value;

        props.dispatch(addpostCreater(text));
        props.state.postAdd.messagePost = '';

    };

    let newUpdatePost = () => {
        let text = newpostElement.current.value;
        props.dispatch(updatepostCreater(text));
    }; 

...


the page should load

标签: javascriptreactjs

解决方案


错误消息表明您正在尝试在不是数组的东西上调用 .map。或者至少它在被调用时不是一个数组。


推荐阅读