如果满足特定条件,是否有办法仅将属性添加到React组件?
我应该在渲染后基于Ajax调用将required和readOnly属性添加到表单元素中,但是由于readOnly =“ false”与完全省略该属性不同,因此我看不到如何解决此问题。
下面的示例应解释我想要的内容,但它不起作用(解析错误:意外的标识符)。
var React = require('React');
var MyOwnInput = React.createClass({
render: function () {
return (
<div>
<input type="text" onChange={this.changeValue} value={this.getValue()} name={this.props.name}/>
</div>
);
}
});
module.exports = React.createClass({
getInitialState: function () {
return {
isRequired: false
}
},
componentDidMount: function () {
this.setState({
isRequired: true
});
},
render: function () {
var isRequired = this.state.isRequired;
return (
<MyOwnInput name="test" {isRequired ? "required" : ""} />
);
}
});
在React中,您可以有条件地渲染Components,也可以有条件地渲染其属性,例如props,className,id等。
在React中,最好使用三元运算符,它可以帮助您有条件地渲染Components。
一个示例还显示了如何有条件地渲染Component及其样式属性。
这是一个简单的示例: