如何解决错误:item [_this.props.text_key] .split不是函数

时间:2019-04-30 12:03:27

标签: react-native

我正在为搜索建议中的自动建议设置一项新功能,对于某些单词,它给了我一个错误,提示: “ item [_this.props.text_key] .split不是函数”。

似乎API有时返回一个对象,而不是字符串。

这是我为TextInput中的搜索建议创建的新组件。

getSuggestions = async currentSearch => {
    try {
      const response = await Api.serachOutoCompleate(currentSearch)
      let searchAutoComplete = response.suggestions.products.map(product => product.product_title)
      response.suggestions.categories.forEach(categories => searchAutoComplete.push(categories))
      response.suggestions.warehouses.forEach(warehouse => searchAutoComplete.push(warehouse.warehouse_name))
      response.suggestions.upcs.forEach(upcs => searchAutoComplete.push(upcs.product_title))
      response.suggestions.tags.forEach(tags => searchAutoComplete.push(tags.product_title))
      this.storedResults[currentSearch] = response
      if (mounted && currentSearch && searchAutoComplete) this.setState({ currentSearch: currentSearch, searchAutoComplete: searchAutoComplete, response })
      else this.setState({ currentSearch: currentSearch })
    } catch (error) {
      console.log(error)
    }
  }

我希望不会出错。

1 个答案:

答案 0 :(得分:0)

  

似乎API有时返回一个对象,而不是字符串。

问题出在API中...请更改您的问题并显示API代码。

但是

如果只想避免该错误,则可以进行一些检查

const splittedName = typeof item[this.props.text_key] === "string" ? item[this.props.text_key].split(' ') : []

这将停止错误,但是当item[this.props.text_key]是一个对象时,您将得到一个空数组,并且不会显示所需的内容(因为没有显示数据)

我要做的是以下之一:

  • 修复API以始终获取字符串
  • 进行一些调试(您可以执行console.log),查看item[this.props.text_key]中的内容,并进行一些检查以获得所需的内容。

仅提供您提供的信息,这是我能为您提供的最大帮助。