如何有条件地向React组件添加属性?
juandemarco的答案通常是正确的,但这里是另一个选项。
按照您的喜好构建一个对象:
var inputProps = { value: 'foo', onChange: this.handleChange }; if (condition) { inputProps.disabled = true; }
使用展开操作符进行渲染,还可以选择传递其他props。
显然,对于某些属性,如果您传递给它的值不是真值,React会智能地省略该属性。例如:
const InputComponent = function() { const required = true; const disabled = false; return ( ); }
将会导致:
更新:如果有人想知道这种情况是如何发生的,可以在ReactDOM的源代码中找到详细信息,特别是在DOMProperty.js文件的第30行和167行。