2017-09-07 3 views
0

Dans mon projet ReactJS, j'ai un MainComponent qui contient des ChildComponents comme indiqué dans mon exemple. Je suis à la recherche d'un moyen simple d'échanger les ChildComponents via un bouton haut/bas.Permutation de composants dans React

J'ai vérifié 'reactif-sortable-hoc' mais cela semble juste manipuler glisser par la souris ou le toucher, je suis à la recherche d'un échange via des événements de clic comme un bouton contenant monter/descendre.

- MainComponent 
    - ChildComponent #1 [up/down] 
    - ChildComponent #2 [up/down] 
    - ChildComponent #3 [up/down] 
    - ChildComponent #4 [up/down] 

Y at-il suggéré par ces moyens ou lib pour archiver quelque chose comme ça?

+0

Avez-vous vérifié [CSS-Transition-Group] (https://github.com/reactjs/react-transition-group)? – bennygenel

Répondre

0

Je voudrais simplement échanger l'ordre de votre ChildComponent, mais assurez-vous de gérer keys les accessoires de chaque ChildComponent correctement.

Alors que, en supposant que votre ChildComponent est rendu par:

arrays.map(x => <ChildComponent keys={x.id} />) 

Assurez-vous d'utiliser la clé ne repose pas sur l'indice array. Disons, par exemple, 2e et 3e échange:

let 2nd = arrays[1], 3rd = arrays[2]; 
array[2] = 2nd; 
array[1] = 3rd; 

Vous pouvez ensuite se concentrer sur la mise à jour array. Si vous voulez une transition plus, il vaut la peine d'essayer reactcss-transition-group.

+0

Merci pour cette réponse, je vais y jeter un coup d'oeil! – directory

+0

Créé moi-même une fonction pour permuter des composants mais je ne trouve pas comment créer cette transition de mouvement en douceur lorsque l'état a changé et que les composants sont réorganisés. Pourriez-vous donner un exemple de comment faire cela? – directory