Saya sedang menulis aplikasi web berbasis redux reaksi, dan saya tidak dapat memetakan respons yang saya dapatkan dari toko redux. Saya selalu mendapatkan kesalahan yang mengatakan peta bukan fungsi. Saya dapat melihat data melalui konsol dengan mencatatnya tetapi crash pada detik berikutnya saya menggunakan fungsi peta untuk mengambilnya. Ini adalah responsnya dan saya tidak dapat memetakan data apa pun.

JSON RESPONSE

Ini adalah kode yang saya buat untuk mendapatkan respons blockcount.

import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { fetchPost } from '../../Redux/Post-Redux/PostActionMethods';
import './PostBody.css';


function PostBody({postdata}) {

    console.log(postdata);

    var blockcount = postdata.postchapter.map((key)=>{
        return key.blockcount
    })
    
    console.log(blockcount);
    
    return postdata.isLoading ? (<h2>Loading...</h2>) :
            postdata.error ? (<h2>{postdata.error}</h2>) :
            (
                <div>
                    <p>Some texts</p>
                </div>
            )
    
}

const mapStatetoProps = (state) =>{
    return{
        postdata:state.PostChapter
    }
}


export default connect(mapStatetoProps)(PostBody);

Ketika saya menjalankan ini saya mendapatkan kesalahan: TypeError: postdata.postchapter.map bukan fungsi

Bagaimana cara memperbaiki ini dan mendapatkan respons konten sementara saya tidak dapat mengambil jumlah blok itu sendiri ??

Ini adalah respons konten yang perlu saya ambil dengan benar.

enter image description here

0
Aadhit Shanmugam 12 Mei 2021, 22:23

1 menjawab

Jawaban Terbaik

map() adalah metode Array, tetapi postdata.postchapter adalah Objek.

Tidak bisakah kamu menggunakan

var blockcount = postdata.postchapter.blockCount;

Dari pada

var blockcount = postdata.postchapter.map((key)=>{
    return key.blockcount
})

-- Sunting --

Jika Anda perlu merender postdata.postchapter.content;

text properti misalnya,

Kemudian:

function PostBody({postdata}) {

    console.log(postdata);

    var content = postdata.postchapter.content?.map((item, index)=>{
        return <p key={index}>{item.text}</p>
    })
    
    return postdata.isLoading ? (<h2>Loading...</h2>) :
            postdata.error ? (<h2>{postdata.error}</h2>) :
            (
                <div>
                    {content}
                </div>
            )
    
}

Berikut adalah dokumentasi reaksi tentang daftar rendering

1
m51 12 Mei 2021, 20:30