跳到主内容

React如何实现根据条件渲染属性?

· 2分钟阅读

有没有办法只在满足特定条件时向 React 组件添加属性?

我应该在渲染后基于 Ajax 调用向表单元素添加 required 和 readOnly 属性,但我不知道如何解决这个问题,因为readOnly="false"这与完全省略该属性不同。

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

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

解决方法

显然,对于某些属性,如果传递给它的值不真实,React 足够智能以省略该属性。例如:

const InputComponent = function () {
const required = true;
const disabled = false;
return <input type="text" disabled={disabled} required={required} />;
};

将导致:

<input type="text" required>

更新:如果有人对如何/为什么发生这种情况感到好奇,您可以在 ReactDOM 的源代码中找到详细信息,特别是在DOMProperty.js文件的第30167行。