Я немного покопался, так как это меня тоже озадачило, и наткнулся на этот спектральный чат .
Я не уверен, что полностью понимаю, что происходит, но, похоже, current
значение ссылок в вашем коде читается только один раз, и поэтому, когда компонент монтируется, цепочка завершается мгновенно и никогда не сбрасывается. Ваш код работает, если вы вставляете жестко закодированные значения для двух пружин, а затем управляете ими с помощью поворотников, но, очевидно, вы ищете решение dymani c.
Я проверил это и, похоже, job:
const topCurrent = !topRef.current ? topRef : {current: topRef.current};
const leftCurrent = !leftRef.current ? leftRef : {current: leftRef.current};
useChain([topCurrent, leftCurrent]);
Это заставляет цепочку каждый раз ссылаться на текущее значение ссылки. Турнир здесь, потому что значение ref on mount undefined
- может быть более элегантный способ объяснить это.