反应本机 - 将状态分配给 const

Aby*_*Aby 0 javascript reactjs react-native react-native-paper

我从 react native 开始,当使用名为 react native paper 的库时,我遇到了一个语句,其中将状态分配给了一个常量,如下所示。

import * as React from 'react';
import { Searchbar } from 'react-native-paper';

export default class MyComponent extends React.Component {
  state = {
    firstQuery: '',
  };

  render() {
    const { firstQuery } = this.state;
    return (
      <Searchbar
        placeholder="Search"
        onChangeText={query => { this.setState({ firstQuery: query }); }}
        value={firstQuery}
      />
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

'Render' 方法的开头,你可以看到 const { firstQuery } = this.state; 有人可以解释为什么将状态分配给名为“firstQuery”的常量,即使它有原因,分配如何将状态对象内的属性“firstQuery”正确映射到 const ?

提前致谢。代码示例来自https://callstack.github.io/react-native-paper/searchbar.html#value

Huỳ*_*yễn 6

该语法既不是 React 也不是 React Native。这只是 Javascript 的语法,称为解构。

const { firstQuery } = this.state;
Run Code Online (Sandbox Code Playgroud)

相当于

const firstQuery = this.state.firstQuery;
Run Code Online (Sandbox Code Playgroud)

只是一个简写的快捷语法,你看到 2 firstQuerys吗?人们只是不想在代码中重复,所以他们发明了它。


请参阅下面的vanilla javascript片段:

const { firstQuery } = this.state;
Run Code Online (Sandbox Code Playgroud)