Le composant React Tab ne met pas à jour l'onglet actif lorsque la valeur du magasin Redux change
P粉950128819
2023-08-31 17:49:11
<p>J'utilise le composant Chakra UI Tab dans mon application React. J'ai une valeur numérique stockée dans Redux et je souhaite modifier l'onglet actif en fonction de cette valeur. Cependant, lorsque je mets à jour la valeur dans le magasin, l'onglet actif ne change pas en conséquence. Comment puis-je résoudre ce problème? </p>
<p>Voici le code du composant <code>MyTabs</code>
<pre class="brush:php;toolbar:false;">fonction MesTabs() {
const number = useSelector(selectnumber);
console.log(numéro);
retour (
<Onglets defaultIndex={numéro}>
<TabPanels>
<TabPanel>
<Image boxSize="200px" fit="couverture" src="" />
</TabPanel>
<TabPanel>
<Image boxSize="200px" fit="couverture" src="" />
</TabPanel>
</TabPanels>
<ListeTabulations>
<Tab>Naruto</Tab>
<Tab>Sasuke</Tab>
</ListeTabulations>
</Onglets>
);
}</pre></p>
Pour garantir que l'onglet actif du composant Chakra UI Tab est mis à jour lorsque la valeur dans Redux change, vous pouvez utiliser le hook useEffect fourni par React. Le hook useEffect vous permet d'effectuer des effets secondaires tels que la mise à jour de l'onglet actif lorsqu'une dépendance spécifique change.
Vous pouvez modifier le composant MyTabs comme suit :
Dans ce code mis à jour, le hook useEffect est utilisé pour distribuer une opération (updateNumber) lorsque la valeur change. Assurez-vous d'avoir implémenté les opérations appropriées et la logique de réduction (selectNumber) dans votre tranche Redux pour gérer les mises à jour numériques.
En faisant cela, l'onglet actif sera automatiquement mis à jour en fonction de la valeur numérique stockée dans Redux.
defaultIndex
Les attributs sont :Voir la documentation Composants contrôlés et non contrôlés et Valeurs par défaut :
Vous pouvez utiliser Onglet Contrôlé