Issue
Hello so i wanna filter the JSON data so that it show random data using this function, but i encounter error on my variable filteredArray. it says "Property 'filter' does not exist on type 'Dispatch<SetStateAction<Pasangan[]>>'". should i define the filter type? if so how do i do it
what should i do
This is the error code :
    const addPasangan = (newPasangan: Pasangan) => {
            
            if (newPasangan == null) return;
        
            setGebetTarget((temp) => {
              return temp.concat(newPasangan);
            });
            const filteredArray = setPasangan.filter((item: Pasangan) => item !== newPasangan);
            setPasangan(filteredArray);
        };
Full code :
import React, { useState } from "react";
import PasanganContext, {Pasangan} from './Pasangan-context';
const FriendsContextProvider: React.FC = (props) => {
    const [pasangans, setPasangan] = useState<Pasangan[]>([
        {
            id: 'f1',
            name: 'John Thor',
            gender: 'male',
            src: 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=387&q=80'
        },
        {
            id: 'f2',
            name: 'John Doe',
            gender: 'male',
            src: 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=387&q=80'
        },
        {
            id: 'f3',
            name: 'Thoriq',
            gender: 'male',
            src: 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=387&q=80'
        },
        {
            id: 'f4',
            name: 'Queen Tamy',
            gender: 'female',
            src: 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=387&q=80'
        },
        {
    ]);
    const [gebetTarget, setGebetTarget] = useState<Pasangan[]>([]);
    const addPasangan = (newPasangan: Pasangan) => {
        
        if (newPasangan == null) return;
    
        setGebetTarget((temp) => {
          return temp.concat(newPasangan);
        });
        const filteredArray = setPasangan.filter((item: Pasangan) => item !== newPasangan);
        setPasangan(filteredArray);
    };
    const updateFriend = () => {};
    const deleteFriend = () => {};
    return(
        <PasanganContext.Provider value={{
            pasangans,
            gebetTarget,
            addPasangan,
            updateFriend,
            deleteFriend
        }}> 
        {props.children}
        </PasanganContext.Provider>
    );
    };
export default FriendsContextProvider;
Solution
Replace setPasangan with pasangans
 const filteredArray = setPasangan.filter((item: Pasangan) => item !== newPasangan);
 setPasangan(filteredArray);
        
to
 const filteredArray = pasangans.filter((item: Pasangan) => item !== newPasangan);
 setPasangan(filteredArray);
       
Answered By - Dipesh KC
 
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.