Ho un semplice componente React che accetta un puntello che nasconde/mostra i figli di un componente. Nascondo/mostro usando l'attributo style e display: none
. Se utilizzo display: none !important
, il componente non esegue più il re-rendering quando riceve nuovi oggetti di scena.Reagire aggiungendo! Importante sembra interrompere il re-rendering del componente
All'interno del metodo di rendering, sembra che questo:
var style = {};
if(shouldHide) {
//this works
style = {
display: 'none'
};
//this does not
//style = {
// display: 'none !important'
//};
}
return (
<span style={style} {...this.props} />
);
Ecco l'esempio completo: https://jsfiddle.net/ccnokes/LnrnrLy2/ (linee rilevanti inizio alla linea 27)
Che cosa sta succedendo qui? Mi sto perdendo qualcosa?
Perché avete bisogno 'important' a tutti!? Gli stili incorporati hanno una precedenza più alta rispetto a tutti gli altri stili. –
Se un foglio di stile ha 'display: block! Important' su di esso per qualche motivo, lo stile in linea non lo supererà, giusto? – ccnokes
Sì, hai ragione. Errore mio. –