Méthode d'implémentation React Native pour stocker les valeurs JSON sous forme de paires clé-valeur
P粉502608799
P粉502608799 2023-09-14 22:48:30
0
2
544

J'affiche le nom de l'entreprise et l'ID de json stockés dans companyData et je les stocke simultanément en tant que clé et valeur en utilisant le stockage asynchrone dans React Native. J'ai eu l'erreur suivante, j'ai donc utilisé JSON.stringify pour convertir les deux valeurs en chaînes avant de les stocker sous forme de paires clé-valeur, mais j'obtiens toujours la même erreur

[Erreur : l'objet ne peut pas devenir un enfant React (objet trouvé avec les clés {_h, _i, _j, _k}). Si vous souhaitez afficher un groupe d'éléments enfants, utilisez plutôt un tableau. ]

Je souhaite les stocker sous forme de paires clé-valeur afin de pouvoir utiliser les valeurs dans un autre composant. Toute aide est grandement appréciée

const companyDatas = {
        "accounts": {
            "company 1 ": {
                "id": "4",
                "enabled": "1"
            },
            "company 2": {
                "id": "2",
                "enabled": "1"
            },
            "company 3": {
                "id": "1",
                "enabled": "1"
            }
        }
      };
    
     const storeJson = async (value1,value2) => {
      try {
        await AsyncStorage.setItem(value1,value2);
       
      } catch (e) {
        // saving error
      }
    };
    
      const [companyData, setCompanyData] = useState(companyDatas)
    
      return (
        <View style={styles.container}>
          {
            Object.entries(companyData.accounts)
            .map(([company, accountData]) => (
              <View key={company}>

                <Text style={[styles.textRoad, styles.capital]}>{company}{accountData.id}</Text>
                     { storeJson(JSON.stringify(company),JSON.stringify(accountData.id))}

                
              </View>
            ))
          }
        </View>
      );
    }

P粉502608799
P粉502608799

répondre à tous(2)
P粉321584263

N'utilisez pas la fonction storeJson dans JSX. Parce que chaque rendu du composant exécutera à nouveau votre fonction storeJson. Vous pouvez ajouter un bouton pour stocker des données. Ou vous pouvez ajouter cette fonction à useEffect. Vous devez vous assurer que cette fonction ne s'exécute qu'une seule fois.

{_h, _i, _j, _k}) signifie que les données sont toujours une promesse et n'ont pas encore été résolues. Vous pouvez utiliser une fonction asynchrone pour le transmettre.

P粉087074897

Vous pouvez déplacer l'appel de fonction storeJson en dehors de JSX, peut-être en utilisant la fonction d'effet secondaire useEffect pour le gérer.

const companyDatas = {
  accounts: {
    "company 1 ": {
      id: "4",
      enabled: "1",
    },
    "company 2": {
      id: "2",
      enabled: "1",
    },
    "company 3": {
      id: "1",
      enabled: "1",
    },
  },
};

const storeJson = async (value1, value2) => {
  try {
    await AsyncStorage.setItem(value1, value2);
  } catch (e) {
    
  }
};

const App = () => {
  const [companyData, setCompanyData] = useState(companyDatas);

  useEffect(() => {
    Object.entries(companyData.accounts).forEach(([company, accountData]) => {
      storeJson(JSON.stringify(company), JSON.stringify(accountData.id));
    });
  }, [companyData]);

  return (
    <View style={styles.container}>
      {Object.entries(companyData.accounts).map(([company, accountData]) => (
        <View key={company}>
          <Text style={[styles.textRoad, styles.capital]}>
            {company}
            {accountData.id}
          </Text>
        </View>
      ))}
    </View>
  );
};

export default App;
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!