我目前正在创建一个 React Native 应用程序,但仍然不确定如何最好地处理我的用例的状态。
我用来react-native-svg
在应用程序中创建一个相当复杂的图形,它存储在一个组件中,保持不变并在父组件中检索。然后这个父组件在画布上定期旋转和平移,但复杂图形的路径不会改变。因此,由于计算量很大,我只想在应用程序启动时计算该图形的 SVG 路径,而不是在我旋转或平移父组件时计算。目前,我的代码结构如下所示:
图组件
const Figure = (props) => {
const [path, setPath] = useState({FUNCTION TO CALCULATE THE SVG PATH});
return(
<G>
<Path d={path} />
</G>
)
}
父组件
const Parent = (props) => {
return (
<View>
<Svg>
<G transform={ROTATE AND TRANSFORM BASED ON INTERACTION}>
<Figure />
</G>
</Svg>
</View>
)
}
如您所见,我正在使用路径数据的状态。我现在的问题:
- 我是否在这里确保这条路径只在开始时计算一次?
- 有没有更优雅/更好的方法来做到这一点(例如,我现在根本没有使用 setter 函数,所以我觉得这不是最佳实践)
编辑:
计算路径的函数取决于我从父组件传递的一些道具。