Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用react-spring将springs与动态项数组一起使用_Javascript_Reactjs_Formik_React Spring - Fatal编程技术网

Javascript 使用react-spring将springs与动态项数组一起使用

Javascript 使用react-spring将springs与动态项数组一起使用,javascript,reactjs,formik,react-spring,Javascript,Reactjs,Formik,React Spring,我正在尝试使用react-spring的useSprings,使用户能够在formikFieldArray中重新排序项目。useSprings可拖动列表演示()使用useRef来管理项目的顺序FieldArray附带了许多用于插入、删除和移动项目的阵列辅助功能 我面临的问题是: 1) 使用formik的movearray helper方法重新排序现有项成功地更改了数组顺序,但需要额外单击以呈现正确的顺序 2) 使用数组帮助器方法添加或删除数组项会产生意外结果。改变ref的长度不会改变顺序的长度。

我正在尝试使用react-spring的
useSprings
,使用户能够在formik
FieldArray
中重新排序项目。useSprings可拖动列表演示()使用
useRef
来管理项目的顺序
FieldArray
附带了许多用于插入、删除和移动项目的阵列辅助功能

我面临的问题是:

1) 使用formik的
move
array helper方法重新排序现有项成功地更改了数组顺序,但需要额外单击以呈现正确的顺序

2) 使用数组帮助器方法添加或删除数组项会产生意外结果。改变ref的长度不会改变
顺序的长度。当前
usepostation的内部
usepostation

我还尝试使用
useffect
而不是
useRef
,并在道具更改时使用
useffect
更新状态

下面是我制作的代码沙盒:

bind
函数中,注释out order.current=newOrder;和取消注释//arrayHelpers.move(currIndex,currRow);显示了我上面提到的问题1

order.current = newOrder; // arrayHelpers.move(currIndex, currRow);
我希望能够使用带有react spring的formik的
移动
插入
、和
删除
助手功能,在
字段数组中无缝地重新排序、添加和删除项目

我至少遇到了您的#1问题

请注意,
setSprings
函数本身不会重新渲染任何内容,
useSprings
缺少一个要自动更新的
依赖项
数组

反应-springs@9.0.0.beta-23
有一个依赖项数组,与链接的沙箱中的
useSpringsFixed
包装一起,它应该强制对更改的道具重新加载


希望这对您的问题也有帮助。

添加新元素后,您可以尝试设置新的order.current

  onClick={() =>{
          arrayHelpers.insert(items.length, {
            name: `Item ${items.length + 1}`
          })
          order.current = [...order.current, order.current.length];
        }
      }

这将在列表末尾添加新项目。

谢谢您的回答。我现在正在关注你在Github上打开的问题。嘿!你解决了这个问题吗?