javascript - React Map 方法 - 单独放置回调函数并发送参数

标签 javascript reactjs

按照我的理解,map 方法采用回调函数。 通常你会将函数放在 map 中:

const todoItems = todos.map((todo) =>
  <li key={todo.id}>
    {todo.text}
  </li>
);

但在我的项目中,我将该函数作为单独的组件调用:

{ tabs.map( myFunction ) } 

这是 myFunction 组件:

const myFunction = (item) => {

    return(

        <Thing 
            key={item.value}
            label={item.label}
            value={item.value} 
        />
    );
}

map 上的“项目”似乎是自动传递的。

问题是我需要传递一个额外的变量 - 我该怎么做? 这不起作用:

{ tabs.map( myFunction(myvariable) ) } 

也不:

{ tabs.map((styles) => myFunction ) } 

所以我不确定如何传递变量......并且仍然可以传递“项目”。

最佳答案

解决方案是:

{ tabs.map((tab) => myFunction(tab, myvariable)) }

另请注意

const myFunction = (item) => {

    return(

        <Thing 
            key={item.value}
            label={item.label}
            value={item.value} 
        />
    );
}

可以重构为

const myFunction = (item) => (
        <Thing 
            key={item.value}
            label={item.label}
            value={item.value} 
        />
);

关于javascript - React Map 方法 - 单独放置回调函数并发送参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49796008/

相关文章:

javascript - 读取 CSV 错误 : Illegal Data. 发生了什么事?

reactjs - 阅读布局时, `useLayoutEffect` 比 `useEffect` 更可取吗?

javascript - 混合类型 react 的映射函数中的 typescript 类型问题

javascript - Reactjs - 导入的组件不渲染

javascript - 提前输入 : Adding a last option

javascript - jQuery 可以获取与元素关联的所有 CSS 样式吗?

javascript - 如何在 Firebase 中按升序或降序检索分页子项?

javascript - Safari 转换翻译无法正常工作

reactjs - 命令 `bundle` 无法识别。您是否打算在 React-Native 项目中运行此命令?

javascript - 如何一次只打开 1 个弹出窗口?