简体   繁体   English

在反应中获取导入的 function 的未定义值

[英]getting undefined value of imported function in react

I am filtering data based on texts typed in the searchbox.我正在根据在搜索框中输入的文本过滤数据。 I am first filtering the data and then mapping it.我首先过滤数据,然后映射它。 My code is working is as expected but there is the repetition of a function so I put it into the util folder and then use it in the file.我的代码按预期工作,但是重复了 function 所以我把它放到util文件夹中,然后在文件中使用它。 But the problem is that the value I am getting is undefined from that util function.但问题是我得到的值是undefined从该工具 function 中定义的。

Previous code of Members.js: Members.js 之前的代码:

import React from 'react'
import members from '../members.json'

function Member({searchTerm}) {
  return (
    <div>
      {
        members.filter((ele) =>
                ele.first_name
                  .toLowerCase()
                  .includes(searchTerm.toLocaleLowerCase()) ||
                ele.last_name
                  .toLowerCase()
                  .includes(searchTerm.toLocaleLowerCase()))
        .map(ele => {
          return (
            <div key={ele.id}>
              <h1>Name: {ele.first_name} {ele.last_name}</h1>
            </div>
          )
        })
      }
    </div>
  )
}

export default Member

My new approach with Utils我使用 Utils 的新方法

utils/helper.js:实用程序/helper.js:

const searchMembers = (membersArr, searchTerm) => {
  return membersArr.filter(
    (ele) =>
      ele.first_name
        .toLowerCase()
        .includes(searchTerm.toLocaleLowerCase()) ||
      ele.last_name.toLowerCase().includes(searchTerm.toLocaleLowerCase())
  );
}

export { searchMembers }

Members.js成员.js

import React from 'react'
import members from '../members.json'
import {searchMembers} from '../utils/helper'

function Member({searchTerm}) {
  const {searchMember} = searchMembers(members, searchTerm)
  console.log('searchMember:', searchMember)      //undefined
  return (
    <div>
      {
        searchMember.map(ele => {
          return (
            <div key={ele.id}>
              <h1>Name: {ele.first_name} {ele.last_name}</h1>
            </div>
          )
        })
      }
    </div>
  )
}

export default Member

For above approach I am getting error searchMember.filter is not a function .对于上述方法,我收到错误searchMember.filter is not a function

Can you guys please help me?你们能帮帮我吗?

Thank you谢谢

Your searchMembers method returns the filtered results directly.您的searchMembers方法直接返回过滤后的结果。 While your code虽然你的代码

const {searchMember} = searchMembers(members, searchTerm)

tries to extract a searchMember from the returned data ( through destructuring ).尝试从返回的数据中提取一个searchMember通过解构)。

use利用

const searchMember = searchMembers(members, searchTerm)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM