【问题标题】:Map database params field values to custom names将数据库参数字段值映射到自定义名称
【发布时间】:2022-01-12 03:18:38
【问题描述】:

我正在尝试处理前端的一系列错误并将它们显示在页面上。我正在获取用户从后端输入的字段并尝试将它们映射出来。但是,后端参数以驼峰形式返回。请看下面:

我想渲染: 电子邮件、最喜欢的运动、gpa 分数的输入字段不可接受

但我看到了

email、favoriteSport、gpaScore 的输入字段不可接受

有什么方法可以将参数名称映射到自定义名称?

这是我的代码:

Array.isArray(errors) ? `The input fields for ${errors.map(item => item.param)} are unacceptable`

有什么方法可以将参数名称映射到我自己的喜好?

【问题讨论】:

  • 您在后端设置 params 属性的逻辑是什么?

标签: javascript arrays reactjs database error-handling


【解决方案1】:
const mapper = (item) => {
  return {
   gpaScore: 'GPA Score',
   favoriteSport: 'Favorite Sport',
  }[item.param] || 'Unknown property'
} 

return `The input fields for ${errors.map(item => mapper(item)).join(', ')} are unacceptable`

【讨论】:

    【解决方案2】:

    在这里您可以使用 react-intl 之类的东西来格式化消息,但一般来说,您需要将编程键转换为用户友好消息的东西

    const t = {
      email: "email",
      favoriteSport: "favourite sport",
      gpaScore: "GPA score"
    }
    
    const fields = errors.map(({ param }) => t[param] ?? param)
    
    const message = `The input fields for ${fields.join(", ")} are unacceptable`
    

    【讨论】:

      猜你喜欢
      • 2015-01-24
      • 1970-01-01
      • 1970-01-01
      • 2013-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-04
      相关资源
      最近更新 更多