有没有办法只在满足特定条件时向 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文件的第30和167行。