首页 文章

SectionList和Typescript

提问于
浏览
0

输入SectionList的正确方法是什么?我遇到了一个有效的bug(来自docs example):

<SectionList
          renderItem={({item, index}) => <Text key={index}>{item}</Text>}
          renderSectionHeader={({section: {title}}) => (
            <Text style={{fontWeight: 'bold'}}>{title}</Text>
          )}
          sections={ticksData}
          keyExtractor={(item, index) => item + index}
        />;

但这不是:

const renderSectionHeader=({section: {title}}) => (
  <Text style={{fontWeight: 'bold'}}>{title}</Text>
 );

return (
        <SectionList
          renderItem={({item, index}) => <Text key={index}>{item}</Text>}
          renderSectionHeader={renderSectionHeader}
          sections={ticksData}
          keyExtractor={(item, index) => item + index}
        />;

我收到此错误:

属性'renderSectionHeader'的类型不兼容 . 输入'({section:}:{section:{title:any;};})=>元素'不能赋值为'(info:{section:SectionListData;})=> ReactElement' . 参数“__0”和“信息”的类型不兼容 . 输入'{section:SectionListData; }'不能赋值给'{section:{title:any; }; }” . 属性“部分”的类型不兼容 . 类型'SectionListData'不能分配给'{title:any; }” . 'SectionListData'类型中缺少属性'title' .

1 回答

  • 1

    有同样的问题,来到这个答案,但还没有解决方案,所以这是我的:

    import { SectionList, SectionListData } from 'react-native';
    
    interface IHeader {
      section: SectionListData<{ title: string }>
    }
    
    const renderSectionHeader=({section: {title}}: IHeader) => (
      <Text style={{fontWeight: 'bold'}}>{title}</Text>
    );
    

相关问题