我有一个名为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草图。但是,如果我不能依靠道具,那么如何使用react-three-fiber
组件中的外部数据?
任何帮助表示赞赏。