我一生无法理解为什么有人甚至想要这个规则,更不用说它的含义了。我希望在渲染中返回一些内容

export default class SearchTabs extends Component {
  render() {
    const { panels, selectedTab } = this.props;
    if (!panels || panels.length === 0) return;

    let filter = null;

    const tabs = panels.member.map((panel, idx) => {
      const { id: panelId, headline } = panel;
      const url = getHeaderLogo(panel, 50);
      const item = url ?
        <img src={url} alt={headline} /> : headline;
      const classname = classNames([
        searchResultsTheme.tabItem,
        (idx === selectedTab) ? searchResultsTheme.active : null,
      ]);

      filter = (idx === selectedTab) ? this.renderFilters(panel) : filter;

      return (
        <TabItem
          classname={`${classname} search-tab`}
          headline={headline}
          idx={idx}
          content={item}
          onclick={() => {
            this.tabChanged(idx, headline);
          }}
          panelId={panelId}
        />
      );
    });

    return (
      <div className={searchResultsTheme.filters}>
        <ul className={`${searchResultsTheme.tabs} ft-search-tabs`}>{tabs}</ul>
        <div className={searchResultsTheme.dropdown}>{filter}</div>
      </div>
    );
  }
}

最佳答案

我相信你的问题是线

if (!panels || panels.length === 0) return;

抱怨是因为此代码路径未返回任何内容。尝试将其更改为
if (!panels || panels.length === 0) return null;

关于javascript - 关于React组件的ESLint规则:方法渲染预期没有返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45786965/

10-12 12:25
查看更多