2015-10-14 10 views
5

Sto creando dinamicamente più input di testo (con refs creati dinamicamente) lungo il lato del testo che voglio aggiornare con l'input.Reagire trovare il nodo DOM con i riferimenti impostati sulla variabile?

Sto cercando di ottenere il valore dell'ingresso impostando l'arbitro a una variabile e trovando il nodo DOM con React.findDOMNode (this.refs.Variable) .value

sto ottenendo un "Impossibile leggere errore "valore" di proprietà "null".

Come posso ottenere questo risultato?

Questo è ciò che la funzione è simile:

resetUnit: function(e){ 
    var refID = e.target.id; 
    var ID = refID.split("-")[0]; 
    var Value = React.findDOMNode(this.refs.refID).value; 
    NodesCollection.update({_id: ID},{$set: { materialUnit : Value}}); 
    this.setState({ 
    edit: '' 
    }); 
}, 

risposta

9
var Value = React.findDOMNode(this.refs.refID).value; 

trova il nodo DOM per il componente con il rif "refID". Se si desidera trovare il nodo DOM per il componente con l'arbitro refID (variabile), è necessario

var Value = ReactDOM.findDOMNode(this.refs[refID]).value; 
+1

Grazie, ha funzionato! –

+4

Suppongo che sarebbe 'ReactDOM.findDOMNode' not' React.findDOMNode' –

0

sto ottenendo un errore "Impossibile leggere la proprietà 'valore' di null".

Due casi possibili:

  • l'id è sbagliato. Rivedi ulteriore codice o log per verificare che l'ID sia quello che pensi sia
  • Chiamato in anticipo: sei sicuro che sia stato chiamato componentDidMount?
+0

L'ID è corretto e meteor (penso) gestisce il componenteDidMount. Il problema è nel cercare di trovare "this.refs" con una variabile. –

+0

Ad esempio: var A = pippo; React.findDOMNode (this.refs.A) .value; –