首页 > 解决方案 > 警告:道具类型失败:类型为“字符串”的无效道具“错误”预期为“布尔”

问题描述

我的 ReactJS 项目中有一个 material-ui Textfield 组件。

当我运行我的代码时,我在控制台中收到的警告是:

index.js:1 Warning: Failed prop type: Invalid prop `error` of type `string` supplied to `ForwardRef(TextField)`, expected `boolean`.

我的组件代码如下。

 <TextField
   required
   error={errorMessages.myErrorMessage}
   helperText={errorMessages.myErrorMessage}
   value={myTextField}
  />

这段代码工作得很好,但问题是它在控制台中给出了一条警告消息。

我希望仅当“errorMessages.myErrorMessage”值不是空字符串时才显示错误消息。

是否有任何 ES6 或任何其他解决方案?

标签: javascriptreactjsecmascript-6

解决方案


error属性TextField需要一个布尔值,但您传递给它的是一个字符串。

如果您想在errorMessages.myErrorMessage不是空字符串时显示错误,您可以检查字符串的长度,例如:

<TextField
   required
   error={errorMessages.myErrorMessage.length > 0}
   helperText={errorMessages.myErrorMessage}
   value={myTextField}
/>

或者,您也可以使用!!errorMessages.myErrorMessage代替errorMessages.myErrorMessage.length > 0.
这利用了一个空字符串是虚假的,而所有其他字符串都是真实的这一事实


推荐阅读