相关疑难解决方法(0)

React cloneElement not setting key

我正在构建一个动态生成密钥的表控件(我理解这可能不是一个好主意 - 我想密钥应该与它所代表的数据唯一关联,否则React可能只为我们生成唯一的ID?),但无论哪种方式似乎钥匙没有设置,我不知道为什么.表中的行是使用可在此处找到的函数生成的.基本上我有一个辅助组件,它使用一个可选组件来转换所有子元素 - 这里是其中一个转换函数(来自TableBody组件):

const transformRows = (keyPrefix) => (children, passthroughProps) => (React.Children.map(children, (c, i) => {
    return React.cloneElement(c, {
        key: `${keyPrefix}-${i}`,
        style: rowStyle,
        className: rowClassName,
        columnDefinitions: columnDefinitions,
        rowData: tableData[i],
        includeVerticalScrollbar,
        ...passthroughProps
    });
}));
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当我单步执行代码时,似乎正在分配密钥,但随后我在浏览器中收到一条警告,该警告会在堆栈跟踪中Each child in an array or iterator should have a unique "key" prop追溯到此处.

有任何想法吗?

javascript reactjs

7
推荐指数
2
解决办法
4150
查看次数

标签 统计

javascript ×1

reactjs ×1