You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行react-native-swipe-list-view代码时遇TypeError错误求助

解决 TypeError: undefined is not an object (evaluating 'VisibleComponent.props') 错误

我一眼就发现你代码里的关键问题了——renderItem 箭头函数没有返回JSX元素!这种小疏忽很容易触发这类报错,咱们来一步步解决:

问题根源

当你在箭头函数中使用大括号 {} 包裹代码块时,必须显式通过 return 语句返回JSX内容。你的当前代码里,renderItem 只是定义了 <SwipeRow> 组件,但没有返回它,导致最终返回 undefined。SwipeListView无法找到预期的组件实例,自然就抛出了 VisibleComponent.props 未定义的错误。

修复方案

有两种简单的修复方式,选哪种都可以:

方式1:隐式返回(去掉大括号,改用小括号)

直接把箭头函数的大括号换成小括号,让JSX自动作为返回值:

<SwipeListView
  closeOnRowBeginSwipe
  scrollEnabled={true}
  initialNumToRender={8}
  extraData={this.state}
  refreshControl={
    <RefreshControl
      refreshing={this.state.refreshing}
      onRefresh={this._onRefresh}
    />
  }
  useFlatList
  data={this.state.listViewData}
  renderItem={(rowData, rowMap) => (
    <SwipeRow
      key={rowData.item.key}
      leftOpenValue={75}
      rightOpenValue={-150}
      closeOnRowPress
      extraData={this.state}
      directionalDistanceChangeThreshold={2}
    >
      <Hidden data={rowData.item} screen={this.state._screen}/>
      <FrontFace data={rowData} />
    </SwipeRow>
  )}
/>

方式2:显式添加 return 语句

如果需要在 renderItem 里写额外逻辑,保留大括号并加上 return:

<SwipeListView
  closeOnRowBeginSwipe
  scrollEnabled={true}
  initialNumToRender={8}
  extraData={this.state}
  refreshControl={
    <RefreshControl
      refreshing={this.state.refreshing}
      onRefresh={this._onRefresh}
    />
  }
  useFlatList
  data={this.state.listViewData}
  renderItem={(rowData, rowMap) => {
    // 这里可以添加额外的逻辑代码
    return (
      <SwipeRow
        key={rowData.item.key}
        leftOpenValue={75}
        rightOpenValue={-150}
        closeOnRowPress
        extraData={this.state}
        directionalDistanceChangeThreshold={2}
      >
        <Hidden data={rowData.item} screen={this.state._screen}/>
        <FrontFace data={rowData} />
      </SwipeRow>
    )
  }}
/>

额外检查

修复完返回值问题后,也可以确认下 <Hidden> 和 <FrontFace> 组件是否正确接收并处理了传入的 data、screen 等props,确保它们没有内部的props处理错误。不过绝大多数情况下,这个报错都是由 renderItem 未返回组件导致的。

内容的提问来源于stack exchange,提问作者Uzama Zaid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 06:33:25