React 渲染中的解构状态

IT技术 reactjs react-native ecmascript-6
2021-05-10 22:11:48

我看到很多示例展示了一个如下所示的 React 组件:

class MyComponent extends Component {
   constructor(props) {
     super(props)

     this.state = {
       foo: 'foo',
       bar: 'bar'
     }
   }

   render() {
     const { foo, bar } = this.state

     return <Text>{foo}{bar}</Text>
   }
}

如您所见,组件的状态已被解构。我可以看到 JSX 看起来更干净,但似乎更难知道变量来自组件状态。就最佳实践而言,这样做有什么好处还是只是一种偏好?

谢谢。

3个回答

优点:代码看起来更简洁,尤其是当您需要在组件中多次重用状态值时。

缺点:如果你正在制作一个module或开源你的代码,被破坏的语句可能会导致混淆。

const { foo, bar } = this.state;如果您多次使用相同的变量,您缺少的代码看起来会更清晰。在这个用例中,我不会破坏状态

使用解构从源创建不可变数据也很容易

 const { foo, bar } = {...this.state}