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.