Czy istnieje sposób dodawania atrybutów do komponentu React tylko wtedy, gdy spełniony jest określony warunek?
Powinienem dodać wymagane i atrybuty readOnly, aby utworzyć elementy oparte na wywołaniu Ajax po renderowaniu, ale nie widzę, jak to rozwiązać, ponieważ readOnly = „false” to nie to samo, co całkowite pominięcie atrybutu.
Poniższy przykład powinien wyjaśnić, czego chcę, ale to nie zadziała (Błąd analizy: nieoczekiwany identyfikator).
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" : ""} />
);
}
});
aria-modal=true
, przesuwasz zmiany (do wartości false) do magazynu atrybutów aria / data , ale nic innego się nie zmienia (takie jak zawartość komponentu lub klasa lub zmienne w nim zawarte), w wyniku czego ReactJs nie zaktualizuje aria / atrasy danych w tych komponentach. Bałam się przez cały dzień, żeby to zrozumieć.