混淆一些 ReactNative 的东西

Confusion in some ReactNative stuff

下面是 React Native 环境的代码。 我可以看到创建了一个主组件应用程序。 它里面有状态。但是,混淆了使用状态的实际目的。

 import React from 'react';

class App extends React.Component {
   constructor() {
      super();
      this.state = {
         data: 
         [
            {
               "id":1,
               "name":"Foo",
               "age":"20"
            },
            {
               "id":2,
               "name":"Bar",
               "age":"30"
            },
            {
               "id":3,
               "name":"Baz",
               "age":"40"
            }
         ]
      }
   }
   render() {
      return (
         <div>
            <Header/>
            <table>
               <tbody>
                  {this.state.data.map((person, i) => <TableRow key = {i} 
                     data = {person} />)}
               </tbody>
            </table>
         </div>
      );
   }
}
class Header extends React.Component {
   render() {
      return (
         <div>
            <h1>Header</h1>
         </div>
      );
   }
}
class TableRow extends React.Component {
   render() {
      return (
         <tr>
            <td>{this.props.data.id}</td>
            <td>{this.props.data.name}</td>
            <td>{this.props.data.age}</td>
         </tr>
      );
   }
}
export default App

了解主要 App 组件中的 HeaderTableRow 组件。 但是,与以下几行混淆:

{this.state.data.map((person, i) => <TableRow key = {i} 
                 data = {person} />)}

有人可以解释以上语法的工作原理吗? 谢谢

  • 您想知道为什么 React Native 使用状态。你应该看看Facebook https://facebook.github.io/react-native/docs/state拥有的这个文档并做这个例子,然后它会帮助你理清思路。

  • 回答您的示例代码:

    {this.state.data.map((person, i) => <TableRow key = {i} data = {person} />)}

    • 首先它从变量状态 map 获取数据并循环遍历它以呈现每一行视图。如果你做了一些触发器来改变数据,比如 this.setState({data: []}),它会将视图更改为空并自动刷新视图,它会回答为什么状态正在使用。=))

很简单!