0
votes

Obtenez l'élément d'identifiant de l'URL et stockez-le dans un tableau de session chaque fois que la page Time Chargue

Dans ReactJS, j'essaie de stocker l'ID vers la matrice de stockage de session qui provient de l'URL, par exemple, http: // localhost: 3000 / # / carnivalliste / 171 Quelle est la solution pour stocker tous les identifiants?

Je ne peux que stocker un identifiant. Lorsque la page actualise l'ID est remplacée sur le stockage de la session. P>

componentDidMount() {


        if(this.props.params.id) {
            let pro_id=[this.props.params.id];
            console.log(pro_id);

            console.log("otem");
            let items=sessionStorage.getItem("carnival_dones");
            console.log(items);
            if(items!=""){
                this.setState({ carnival_done: [...this.state.carnival_done,{carnival_done:pro_id}]});

            }else{
                this.setState({carnival_done:pro_id});
            }

        }
    }


5 commentaires

Comment stockez-vous des valeurs?


@Zicsus en rendu j'ai donné la sessionStorage.setTem ("carnival_dones", cela.state.carnival_ fait);


Essayez-vous de stocker une gamme de 'carnival_done' comme ['20', '30', '40', '40'] ou quelque chose comme ça [{carnival_done: '20'}, {carnival_done: '30'}, {carnival_done: " 40 '}]


@Zicsus comme [20,30,40]


Ensuite, la façon dont vous vous trouvez l'état est fausse. voir ma réponse.


3 Réponses :


0
votes

Vous devriez enregistrer un tableau, quelque chose comme le code ci-dessous:

let items = JSON.parse(sessionStorage.getItem("carnival_dones"));
if(!items){
 items = []
}
items.push(this.state.carnival_done)
sessionStorage.setItem("carnival_dones",items);


0 commentaires

0
votes

Essayez de sauvegarder un tableau comme JSON et analysez-le lors de la récupération.

componentDidMount() 
{
    if(this.props.params.id) 
    {
        let pro_id = this.props.params.id;
        let items = JSON.parse(sessionStorage.getItem("carnival_dones"));        

        if(items)
        {
            this.setState({ carnival_done: [...this.state.carnival_done, pro_id]});
        }
        else
        {
            this.setState({carnival_done: [pro_id]});
        }
    }
}

// Save session
save = () =>
{
    sessionStorage.setItem("carnival_dones", JSON.parse(this.state.carnival_done));
}


0 commentaires

0
votes

Le problème était que j'utilisais le Méthode de composantDidMount au lieu d'utiliser un composantwillmount, donc j'ai trouvé une solution qui change le crochet xxx

merci beaucoup pour votre support


0 commentaires