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}); } } }
3 Réponses :
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);
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)); }
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 merci beaucoup pour votre support p> p> p> p> P>
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.