useState问题 多个闭包

import React, { useEffect, useState } from "react";
import ReactDOM from "react-dom";
import "antd/dist/antd.css";
import { Table, Button } from "antd";

function MyComponent() {
  const [data, setData] = useState([]);

  const [columns] = useState(genColumns());
  const columns2 = genColumns();

  function genColumns() {
    return [
      {
        title: "Name",
        dataIndex: "name",
        key: "name"
      },
      {
        title: "Action",
        key: "action",
        render: (text, record) => (
          <Button
            type="primary"
            onClick={() => {
              console.log(record, data);
            }}
          >
            Delete
          </Button>
        )
      }
    ];
  }

  // 100ms 获取数据
  useEffect(() => {
    setTimeout(() => {
      setData([
        {
          key: "1",
          name: "张三"
        }
      ]);
    }, 100);
  }, []);

  return (
    <div>
      <p>表格1---------</p>
      <Table
        columns={columns}
        size="small"
        pagination={false}
        dataSource={data}
      />

      <br />

      <p>表格2---------</p>
      <Table
        columns={columns2}
        size="small"
        pagination={false}
        dataSource={data}
      />
    </div>
  );
}

ReactDOM.render(<MyComponent />, document.getElementById("container"));

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容