必须使用解构道具分配问题

Posted

技术标签:

【中文标题】必须使用解构道具分配问题【英文标题】:Must use destructuring props assignment issue 【发布时间】:2020-03-16 17:11:16 【问题描述】:

我在 react-native 中制作了一个应用程序,当我尝试将 props 的值之一放在文本上时,我收到如下错误消息:Must use destructuring props assignment

代码是这样的:

<Text style=styles.SubTextButton>
      props.date1 - props.date2
</Text>

道具看起来像这样:

(props: 
  text: string
  date1: string
  date2: string
)

问题是,这实际上不会破坏我的应用程序并且一切正常。但是我想知道这可能是代码编写中的格式问题,甚至是ESlinter的错误。

【问题讨论】:

这不是一个“错误”,它是说你的 linter 当前的配置方式希望你使用 prop 解构而不是通过 props 访问。 这能回答你的问题吗? ESLint Must use destructuring state assignment 你们都是对的!旧帖子也回答了我的问题!谢谢! 【参考方案1】:

您收到此警告是因为在您的 Eslint 中设置了规则:"react/destructuring-assignment": [&lt;enabled&gt;, 'always']

Eslint 希望你使用解构赋值以这种方式编写:

const MyComponent = ( date1, date2 ) => 
  return (
    <Text>
      date1 - date2
    </Text>
  )

【讨论】:

是的!这是一个解决方案! @RafaRoman 我很高兴听到您会发现它很有用。不要忘记接受答案=)

以上是关于必须使用解构道具分配问题的主要内容,如果未能解决你的问题,请参考以下文章

必须使用解构道具分配(react/destructuring-assignment)

如何解构道具

对函数声明强制执行 TSX 道具类型内联,该函数声明使用对象解构来声明道具

如果我观看解构的道具,Vue 3 手表将无法工作

为啥当我解构属性时接收道具的组件不起作用,但是当我使用 props.key 时它起作用了?

在道具分配中使用扩展运算符时React Native收到错误:“在这种环境下,分配的目标必须是一个对象