Javascript 反应表在选择时重新呈现整个表

Javascript 反应表在选择时重新呈现整个表,javascript,reactjs,react-table,Javascript,Reactjs,React Table,我有一个相对标准的行,可以选择-使用HOC SelectTable实现,很像react表提供的示例: 我的一列的关键区别在于它是一个自定义组件: const columns = [ { ...other columns... { Header: "Sound file", accessor: "sound_file", Cell: props => { return <Soun

我有一个相对标准的行,可以选择-使用HOC SelectTable实现,很像react表提供的示例:

我的一列的关键区别在于它是一个自定义组件:

 const columns = [
      {
      ...other columns...
      {
        Header: "Sound file",
        accessor: "sound_file",
        Cell: props => {
          return <SoundFilePlayer url={props.row.sound_file_url} />;
        },

        minWidth: 80
      }
    ];
const列=[
{
……其他栏目。。。
{
标题:“声音文件”,
访问者:“声音文件”,
单元格:道具=>{
返回;
},
最小宽度:80
}
];
SoundFilePlayer
组件是一个播放作为道具传递到组件中的声音文件的组件。实际上,它加载传入的URL并呈现声音播放器:

加载url之前(持续时间默认为0:00)

然后在加载后以正确的持续时间进行渲染:

我面临的问题是,每当在我的表中选择一行时,整个表都会重新呈现(如果没有声音播放器就可以了)——这意味着声音文件播放器会重置回0:00时长,然后以正确的时长重新加载。每一行都会发生这种情况

我的猜测是,将检查所有行的键,以查看它们当前是否已被选中,从而重新呈现整个表

我只重新渲染选定的行,而不是整个表吗
以及其他一些SO帖子,但似乎不能只重新呈现受影响的行。或者甚至只使用复选框重新呈现列?

您可以尝试使用UseMoom钩子像这样记忆组件

const file=React.usemo(()=>,[props.row.sound\u file\u url]);


它不会重新创建组件功能,除非文件url发生更改,否则将从内存中获取该功能。

因此,我最终找到了一个解决方案-只需将我的react table版本降级,特别是6.8.6,即可解决此问题


似乎在以后的版本中引入了一个bug(考虑到现在的关注点在版本7上,我怀疑这个bug是否会被修复)。

描述有点难以获得,一个复制该问题的代码沙盒会很好。