2015-05-13 13 views
5

Sto provando a impostare condizionatamente una proprietà su una raccolta di elementi.Errore di sintassi JSX su PHPStorm

render: { 
    var buttons = []; 
    for (var i = 1; i <= this.props.totalWeeks; i++) { 
     buttons.push(
     <button 
      onClick={ this.changeWeek.bind(this, i) } 
      disabled={ i === this.state.currWeek }>{ i } 
     </button>); 
    } 
} 

Tutto funziona benissimo nel browser. Ma PHPStorm (versione 8.0.3) contrassegna l'espressione { i === this.state.currWeek } come un errore per valore attributo errato.

Ho provato a cambiarlo con una chiamata di funzione, una variabile, ecc., Ma non riesco a far scomparire l'errore. Ho anche provato a disattivare questa regola di ispezione su PHPStorm, ma non riesco a trovare l'impostazione che l'avrebbe disattivata.

DOMANDA

Come posso fare questo errore andare via in PhpStorm? Se questo è un bug, allora come posso liberarmene aggiungendo in modo condizionale attributi HTML ad un gruppo di elementi in qualche altro modo?

+0

Sembra un errore in PHPStorm. –

+0

Infatti, amico mio ... –

+0

L'hai provato nella build EAP v9? – LazyOne

risposta

0

1) Se si tratta di rendering di reagire (non la funzione personalizzata), dovrebbe essere "render() {return;}" contro il codice

E 'al 100% errore di sintassi, il browser ignora, perché dovrebbe , se lo si utilizza nel corpo definizione della classe, la sintassi è prossimo:

class Test { 
    objectExample: { some: "value" } 
    functionExample() { return someExecutionCode(); } 
    lambdaFunctionExample =() => { return someExecutionCode(); } 
} 

Ma mescolare 1 ° e 2 linee nello stesso tempo, iniziare come definizione di oggetto, con il corpo come una funzione, che non sono adatta a vicenda .

2) La funzione di rendering NON restituisce nulla, sta creando un array, ma non lo restituisce.