ERROR props.postCount.map is not a function

// Здесь происходит рендер
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import reportWebVitals from './reportWebVitals';
import store from './redux/state.js';
import App from './App';
import { a, addPost } from "./redux/state"

const root = ReactDOM.createRoot(document.getElementById('root'));


let renderTree = () => {

  root.render(
    <React.StrictMode>
      <App  dialo={store.getState()} message={store.getState()} profilePage={store.getState()} post={store.getState()} postCount={store.getState()} addPost={store.addPost} changeNewPostText={store.a}  />
    </React.StrictMode>
  );
}
renderTree(store.getState())
store.callbackfunc(renderTree)

// Пропсы отправляются через этот файл и в пропсах храниться информация из файла state.js
import './App.css';
import Header from "./components/Header/Header"
import Navbar from "./components/Navbar/Navbar"
import Profile from "./components/Profile/Profile"
import Dialogs from './components/Dialogs/Dialogs'

import {BrowserRouter, Routes, Route} from "react-router-dom";

function App(props) {

  return (
   
    <>  
    <BrowserRouter>
    <div className='containerHtml'>
    <Header/>
    <section className='glav'>
<Navbar/>
<Routes>

<Route path='/dialogs' element={  <Dialogs dialo={props.dialo} message={props.message} />}/>
<Route path='/profile' element={<Profile post={props.post}  profilePage={props.profilePage} postCount={props.postCount} addPost={props.addPost} changeNewPostText={props.changeNewPostText} />}/>
</Routes>


</section>
</div>  
</BrowserRouter>
    </>
  );
}

export default App;

Ошибка возникла когда я внедрил ООП. Я понимаю, что метод map не может перебрать обьект. Я не знаю, что можно внедрить вместо map, чтобы все заработало

// Вот код state.js
let store =  {
_page: {

    dialo: [
        {id: 1, name:"Алексей Алексеев", url:"https://sun9-71.userapi.com/impg/SfyzLjyQ96myuNdf4aWD2SmD02eADPo9xuL4fg/keo9zWrKIWo.jpg?size=1170x1458&quality=95&sign=182ed2a3417c785808efca322183fd7c&type=album" },
        {id: 2, name:"Артём Булатов", url:"https://sun9-18.userapi.com/impg/jZ1e2Rm6_5oKOby-bGNlgZYHikY51EUX1QBjIQ/_jkiEfcbb_Q.jpg?size=1080x1080&quality=95&sign=4fd8867c1cb81c241de186e3d0dd4dbd&type=album" },
        {id: 3, name:"Боря Касалов", url:"https://sun9-1.userapi.com/impg/780MX3x-UdXCvCg-IE2lC56csBwa-T7hD5CKnQ/idxyz5J6_sQ.jpg?size=1080x1340&quality=95&sign=ad02cd8b30a92ba01c126054c2a66ebb&type=album" },
        {id: 4, name:"Дима Фасов", url:"https://sun2-18.userapi.com/impg/zvGj-3pzX485vpg9yKrQ3hQm9-XrTw7BsUxSaQ/8B2SIQcDb-0.jpg?size=640x1136&quality=95&sign=18265a3db9669b7735b464a6be09fe5d&type=album" },
      ],
      profilePage: {
newPostText: "g"
      },
      
      message: [
        {message:"Привет как дела?", time:"12:09", name:"Кирилл", url:"https://sun2-17.userapi.com/MsrHX0KFBW_pRbQoUhBQMQgpFbIvVmG4t-qVpw/FgGUDFIXwF0.jpg"},
        {message:"Та всё по старому", time:"12:09", name:"Алексей", url:"https://sun9-71.userapi.com/impg/SfyzLjyQ96myuNdf4aWD2SmD02eADPo9xuL4fg/keo9zWrKIWo.jpg?size=1170x1458&quality=95&sign=182ed2a3417c785808efca322183fd7c&type=album"},
        {message:"Чё делаешь сегодня ?", time:"12:10", name:"Кирилл", url:"https://sun2-17.userapi.com/MsrHX0KFBW_pRbQoUhBQMQgpFbIvVmG4t-qVpw/FgGUDFIXwF0.jpg" },
        {message:"Та думал повтыкать сегодня дома", time:"12:12", name:"Алексей", url:"https://sun9-71.userapi.com/impg/SfyzLjyQ96myuNdf4aWD2SmD02eADPo9xuL4fg/keo9zWrKIWo.jpg?size=1170x1458&quality=95&sign=182ed2a3417c785808efca322183fd7c&type=album" },
        {message:"Погнали лучше на улице повтыкаешь", time:"12:17", name:"Кирилл", url:"https://sun2-17.userapi.com/MsrHX0KFBW_pRbQoUhBQMQgpFbIvVmG4t-qVpw/FgGUDFIXwF0.jpg" },
        {message:"Окей подходи через час", time:"12:20", name:"Алексей", url:"https://sun9-71.userapi.com/impg/SfyzLjyQ96myuNdf4aWD2SmD02eADPo9xuL4fg/keo9zWrKIWo.jpg?size=1170x1458&quality=95&sign=182ed2a3417c785808efca322183fd7c&type=album" },
      ],

postCount: [
{id:1, likeCount:1, commentCount:2, repostCount:3, url:"https://sun9-33.userapi.com/impg/BEl10f8OE9ks1C9iQbnzwOnsd4Gv8PM8jRu9EQ/jGQ7v2PNlpQ.jpg?size=2042x2042&quality=95&sign=eceb4e6b3b0ff49d6fb90ffa14e9e04c&type=album"},
{id:2, likeCount:2, commentCount:3, repostCount:4, url:"https://sun9-71.userapi.com/impg/SfyzLjyQ96myuNdf4aWD2SmD02eADPo9xuL4fg/keo9zWrKIWo.jpg?size=1170x1458&quality=95&sign=182ed2a3417c785808efca322183fd7c&type=album"}
]
},
getState() {
  return this._page
},
  _callSubscriber ()  {
 
  },
  addPost (profileMessage)  {
    let obj = {
    id:3, likeCount:1, commentCount:2, repostCount:3, url: this._page.profilePage,
    
    }
    this._page.postCount.push(obj);
    this._page.profilePage = " ";
    this._callSubscriber();
    },
    a(newText)  {

      this._page.profilePage = newText;
      this._callSubscriber(this._page);
      },
       callbackfunc(observer)  {
 
        this._callSubscriber = observer
        }

      }

window.store = store;
export default store;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
// Вот код где идет перебор обьекта
import React from "react"
import s from "./Myposts.module.css"


const Myposts = (props) => {

    let dialogs = props.postCount.map( function f(p) {
        return <Post likeCount={p.likeCount} commentCount={p.commentCount} repostCount={p.repostCount} url={p.url} dates="26 окт 2021"/>, <Post likeCount={p.likeCount} commentCount={p.commentCount} repostCount={p.repostCount}  dates="11 дек 2021" url={p.url}/>

    } )
    let newPostElement = React.createRef();
    let addPost = () => {
        let text = newPostElement.current.value;
        props.addPost(text)
     
    }
let onPostChange = () => {
    let text = newPostElement.current.value;
    props.changeNewPostText(text);
}

    return ( <>
    <input onChange={onPostChange} value={props.profilePage} ref={newPostElement} placeholder="Расскажите о себе" type="text" /> 
    <button onClick={addPost} >ADD</button>
        <div>
            <ul className={s.ulPost}>
            <li className={s.ulPostList}>Все записи</li>
            <li className={s.ulPostList}>Мои записи</li>
            </ul>
            
        </div>
        
        {dialogs}
        
        </>
    ) 
    
}
const Post = (props) => {

    return ( <div className={s.post}>
<div className={s.postUp}><img src="https://sun2-17.userapi.com/MsrHX0KFBW_pRbQoUhBQMQgpFbIvVmG4t-qVpw/FgGUDFIXwF0.jpg" alt="" />
<div className={s.linkDate}>
<a href="#">Кирилл Алексеев</a><br />
<a href="#" className={s.data}>{props.dates}</a>
</div>
</div>
     <div className={s.postDown}>
        <img className={s.postDownImg} src={props.url} alt="" />
     <div className={s.reaction}>
        <span><p>{props.likeCount}</p><img src="https://www.svgrepo.com/show/476608/like.svg" alt="like" /></span>
        <span><p>{props.commentCount}</p><img src="https://www.svgrepo.com/show/349661/comment.svg" alt="comment" /></span>
        <span><p>{props.repostCount}</p><img src="https://cdn-icons-png.flaticon.com/512/591/591866.png?ga=GA1.1.551766916.1695375018" alt="repost" /></span>
     </div>
     </div>
      </div>

    ) 
}
export default Myposts

Ответы (0 шт):