Лучший способ использования внешних данных с использованием фрейма в react-three-fiber

#javascript #reactjs #react-three-fiber

#javascript #reactjs #react-three-fiber

Вопрос:

У меня есть компонент с именем, Sticky который обертывает мои react-three-fiber компоненты. Этот компонент предоставляет мне некоторые обновления состояния через обратный вызов, поэтому весь код выглядит следующим образом:

 const Box = props => {
  
  useFrame(() => {
    // I need the Sticky state update here!
  });

  return (
    <mesh {...props}>
      <boxBufferGeometry attach="geometry" args={[1, 1, 1]} />
      <meshStandardMaterial
        attach="material"
        color={"orange"}
      />
    </mesh>
  );
};

const Main = () => {
  const onChange = state => {
    console.log('NEW STATE', state);
  };

  return (
    <Sticky onChange={onChange}
        <Canvas>
          <Box position={[-1.2, 0, 0]} />
        </Canvas>
    </Sticky>
  );
};
  

Как вы можете видеть, мне нужны данные из Sticky onChange обратного вызова внутри react-three-fiber useFrame перехвата. Я понимаю, как все работает, и что я не хочу передавать это в компонент, поскольку это приведет к повторному отображению Three.js эскиз. Но если я не могу полагаться на props, как вы работаете с внешними данными в react-three-fiber компоненте?

Любая помощь приветствуется.