首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React map函数问题

React map函数问题
EN

Stack Overflow用户
提问于 2019-10-02 17:03:58
回答 3查看 44关注 0票数 0

我是新来的React和JS。

我有这段代码,但是“行”在console.log输出中是未定义的。我猜我的map函数是不正确的,但我不知道为什么。

代码语言:javascript
复制
const stubData = [
  { id: "435879430589041", customer: "jdus", status: "OK" },
  { id: "435879430589042", customer: "jdfr", status: "OK" },
  { id: "435879430589043", customer: "jdnl", status: "pending" },
  { id: "435879430589044", customer: "wsi", status: "config" },
  { id: "435879430589045", customer: "tkmaxx", status: "pending" },
];

const Rows = () => {
  const rows = stubData.map((c,i) => {
    (<tr key={i} value={c}>
      <td>{c.id}</td>
      <td>{c.customer}</td>
      <td>{c.status}</td>
    </tr>)
  }); 
  console.log(rows)
  return <tbody>{rows}</tbody>;
};

const ListIntegrations = props => {
  return (
    <table className="table table-hover">
      <Headers />
      <Rows />
    </table>
  );

Headers返回完美的headers。

EN

回答 3

Stack Overflow用户

发布于 2019-10-02 17:06:50

你不会返回地图上的任何东西。添加一个return语句:

代码语言:javascript
复制
  const rows = stubData.map((c,i) => {
    return (<tr key={i} value={c}>
      <td>{c.id}</td>
      <td>{c.customer}</td>
      <td>{c.status}</td>
    </tr>)
  }); 

...or删除花括号,从而隐式返回:

代码语言:javascript
复制
  const rows = stubData.map((c,i) => 
    (<tr key={i} value={c}>
      <td>{c.id}</td>
      <td>{c.customer}</td>
      <td>{c.status}</td>
    </tr>)
  ); 
票数 3
EN

Stack Overflow用户

发布于 2019-10-02 17:06:55

您不是从地图返回

代码语言:javascript
复制
stubData.map((c,i) => {
    (<tr key={i} value={c}>
      <td>{c.id}</td>
      <td>{c.customer}</td>
      <td>{c.status}</td>
    </tr>)
  }); 

将其更改为

代码语言:javascript
复制
stubData.map((c,i) => {
    return (<tr key={i} value={c}>
      <td>{c.id}</td>
      <td>{c.customer}</td>
      <td>{c.status}</td>
    </tr>)
  }); 
票数 1
EN

Stack Overflow用户

发布于 2019-10-02 17:41:03

因为您使用箭头函数作为map的回调函数。如果没有大括号,{}箭头函数隐式返回

代码语言:javascript
复制
const rows = stubData.map((c,i) => 
(<tr key={i} value={c}>
  <td>{c.id}</td>
  <td>{c.customer}</td>
  <td>{c.status}</td>
</tr>)
);

或者,如果使用大括号,则需要显式返回

代码语言:javascript
复制
const rows = stubData.map((c,i) => {
return
(<tr key={i} value={c}>
  <td>{c.id}</td>
  <td>{c.customer}</td>
  <td>{c.status}</td>
</tr>)
}); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58198418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档