taro3-table icon indicating copy to clipboard operation
taro3-table copied to clipboard

列表头支持动态设置吗?

Open jacktang opened this issue 3 years ago • 6 comments

初始化定义列表头之后,动态生成重新render不能把列表头设置进去,对应数据也显示不出来

        <Table
          columns={headers}
          dataSource={data}
          rowKey='id'
          style={{
            margin: '0 auto',
            width: '95vw'
          }}
        />

jacktang avatar Mar 15 '21 09:03 jacktang

useEffect 需要加入对columns的重新渲染?

jacktang avatar Mar 15 '21 09:03 jacktang

更新到最新版试试?最新版应该解决了这个bug

qxtang avatar Mar 15 '21 12:03 qxtang

🙅   编译失败.

./node_modules/taro3-table/build/Table/Table.js
Module not found: Can't resolve 'D:/Repos/taro3-table/node_modules/@babel/runtime/helpers/esm/defineProperty'

写了绝对路径了,我这边没有 D:/

jacktang avatar Mar 15 '21 12:03 jacktang

打包的build结果里面带入了下面的信息

import _objectSpread from "D:/Repos/taro3-table/node_modules/@babel/runtime/helpers/esm/objectSpread2";
import _defineProperty from "D:/Repos/taro3-table/node_modules/@babel/runtime/helpers/esm/defineProperty";
import _toConsumableArray from "D:/Repos/taro3-table/node_modules/@babel/runtime/helpers/esm/toConsumableArray";
import _typeof from "D:/Repos/taro3-table/node_modules/@babel/runtime/helpers/esm/typeof";
import _slicedToArray from "D:/Repos/taro3-table/node_modules/@babel/runtime/helpers/esm/slicedToArray";

var _this = this;

jacktang avatar Mar 15 '21 12:03 jacktang

1.0.17 版本也是不行的,~~useEffect没加入 columns.... 不会触发render() 的~~ 看了代码 useEffect加入了 columns,但是还是没效果,不知道例子代码应该是怎样的

jacktang avatar Mar 15 '21 12:03 jacktang

    useEffect(() => {
        setColumns(pColumns);  // *
        if (pColumns.some((i: AnyOpt) => {
            return !['number', 'undefined'].includes(typeof i.width);
        })) {
            console.error('[taro3-table] -', '列配置 width 参数类型需为 number');
            setError(true);
        }
    }, [columns, pColumns]); //*

注释带 //* 是fix bug的地方 因为后面render里面使用的是columns, 所以需要set一下。另外传入的参数是 pColumns

jacktang avatar Mar 16 '21 05:03 jacktang