reactjs 如何显示箭头函数的返回值

ltqd579y  于 2023-03-17  发布在  React
关注(0)|答案(2)|浏览(154)

我有一个箭头函数,用来根据一些条件改变句子的值,当我在控制台中记录结果时,我得到了它期望返回的值。
但当我想在Typography标签之间显示这句话时,我的应用程序只会返回一个错误屏幕,显示以下错误:无法对已卸载的组件执行React状态更新。这是一个无操作,但它指示应用程序中存在内存泄漏。若要修复,请取消useEffect清理函数中的所有订阅和异步任务。
我的箭头函数如下:

const displayBirthdayOrNot = (user) => {
  let birthInformation = "";
  if (user.birthday != null || user.placeOfBirth != null) {
    var isMale = user.isMale ? "Né" : "Née";
    birthInformation = birthInformation + isMale;
  }
  if (user.birthday != null) {
    birthInformation = birthInformation + " le " + user.birthday;
  }
  if (user.placeOfBirth != null || user.placeOfBirth === "") {
    birthInformation = birthInformation + " à " + user.placeOfBirth;
  }

  return {
    birthInformation
  }
}

我试着这样展示它:

<Typography component="div">
          {
            displayBirthdayOrNot(user)
          }
        </Typography>

如果你有任何时间来帮助我,我将不胜感激。谢谢阅读

sqserrrh

sqserrrh1#

您可以尝试更新渲染方法吗:

<Typography component="div">
  {displayBirthdayOrNot(user).birthInformation} // otherwise, you are trying to print an object.
</Typography>
avwztpqn

avwztpqn2#

函数应返回birthInformation,而不是对象

const displayBirthdayOrNot = (user) => {
    let birthInformation = '';
    if (user.birthday != null || user.placeOfBirth != null) {
        var isMale = user.isMale ? 'Né' : 'Née';
        birthInformation = birthInformation + isMale;
    }
    if (user.birthday != null) {
        birthInformation = birthInformation + ' le ' + user.birthday;
    }
    if (user.placeOfBirth != null || user.placeOfBirth === '') {
        birthInformation = birthInformation + ' à ' + user.placeOfBirth;
    }

    return birthInformation;
};

相关问题