Redux存储更改时的更新列表

时间:2018-09-11 15:50:29

标签: javascript reactjs redux react-redux react-virtualized

当我的redux存储更改时,我正在尝试更新列表,但是由于某种奇怪的原因,列表没有更改。我必须手动刷新页面才能看到我的更改。这是我的List组件和rowRenderer的代码段。

    <InfiniteLoader
                    isRowLoaded={this._isRowLoaded}
                    loadMoreRows={this._loadMoreRows}
                    rowCount={visibleRequest.length}
                  >
                    {({ onRowsRendered, registerChild }) => (
                      <AutoSizer>
                        {({ height, width }) => (
                          <List
                            ref={registerChild}
                            className="List"
                            height={height}
                            rowHeight={listRowHeight}
                            onRowsRendered={onRowsRendered}
                            rowCount={rowCount}
                            rowRenderer={this._rowRenderer}
                            width={width}
                          />
                        )}
                      </AutoSizer>
                    )}
                  </InfiniteLoader>
                  
                  
                  

_rowRenderer = ({ index, key, style }) => {
    const { loadedRowsMap, selected } = this.state;
    const row = this.getDatum(index);
    let content;
    if (loadedRowsMap[index] === STATUS_LOADED) {
      content = row;
    } else {
      content = (
        <div className="placeholder" style={{ width: _.random(100, 200) }} />
      );
    }
    return (
      <PendingChat
        key={key}
        content={content}
        style={style}
        row={row}
        {...this.props}
      />
    );
  };

1 个答案:

答案 0 :(得分:0)

是的,我遇到了同样的问题。这是因为对对象的引用在执行时不会更改

const row = this.getDatum(index);
    let content;
    if (loadedRowsMap[index] === STATUS_LOADED) {
      content = row;
    }

看看immutability