如果满足某个条件,是否有办法只向React组件添加属性?

我应该在Render之后根据Ajax调用向表单元素添加Required和readOnly属性,但是我不知道如何解决这个问题,因为readOnly="false"不等于完全省略该属性.

下面的例子应该解释我想要什么,但它不起作用.

(分析错误:意外标识符)

function MyInput({isRequired}) {
  return <input classname="foo" {isRequired ? "required" : ""} />
}

推荐答案

显然,对于某些属性,如果您传递给它的值不是真的,Reaction就足够智能,可以省略该属性.例如:

const InputComponent = function() {
    const required = true;
    const disabled = false;

    return (
        <input type="text" disabled={disabled} required={required} />
    );
}

将导致:

<input type="text" required>

Update:如果有人想知道这是如何发生的/为什么发生的,可以在ReactDOM的源代码中找到详细信息,特别是在DOMProperty.js文件的第30行和第167行.

Javascript相关问答推荐

如何通过继承contentitable属性的元素捕捉keydown事件?

使用json文件字符串来enum显示类型字符串无法按照计算的enum成员值的要求分配给类型号

React:未调用useState变量在调试器的事件处理程序中不可用

Vue:ref不会创建react 性属性

Msgraph用户邀请自定义邮箱模板

简单的PayPal按钮集成导致404错误

XSLT处理器未运行

如何在ASP.NET中使用Google Charts API JavaScript将条形图标签显示为绝对值而不是负值

我可以使用使用node.js创建的本地主机来存储我网站上提交的所有数据吗?没有SQL或任何数据库.只有HTML语言

如何使用JavaScript拆分带空格的单词

在Java中寻找三次Bezier曲线上的点及其Angular

将Node.js包发布到GitHub包-错误ENEEDAUTH

同一类的所有div';S的模式窗口

使用auth.js保护API路由的Next.JS,FETCH()不起作用

WebSocketException:远程方在未完成关闭握手的情况下关闭了WebSocket连接.&#三十九岁;

FileReader()不能处理Firefox和GiB文件

JavaScript -复制到剪贴板在Windows计算机上无效

在JavaScript中将Base64转换为JSON

FindByIdAndUpdate在嵌套对象中创建_id

KeyboardEvent:检测到键具有打印的表示形式