2015-10-14 25 views
5

Tôi đang tự động tạo nhiều đầu vào văn bản (với các tham chiếu được tạo động) dọc theo văn bản mà tôi muốn cập nhật với đầu vào.Phản hồi tìm nút DOM bằng cách đặt giá trị được đặt thành biến?

Tôi cố gắng để có được giá trị của đầu vào bằng cách thiết lập ref cho một biến và tìm nút DOM với React.findDOMNode (this.refs.Variable) .Value

Tôi nhận được một "Không thể đọc lỗi 'giá trị' của thuộc tính 'null'.

Tôi làm cách nào để đạt được điều này?

Đây là những gì các chức năng trông giống như:

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: '' 
    }); 
}, 

Trả lời

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

thấy nút DOM cho thành phần với ref "refID". Nếu bạn muốn tìm nút DOM cho thành phần với ref refID (biến), bạn cần

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

Cảm ơn bạn, đã làm việc! –

+4

Tôi đoán nó sẽ là 'ReactDOM.findDOMNode' không phải' React.findDOMNode' –

0

Tôi nhận được một lỗi "Không thể đọc thuộc tính 'giá trị' của null".

Hai trường hợp xảy ra:

  • id là sai. Xem lại mã khác hoặc log để kiểm tra kỹ ID là những gì bạn cho rằng đó là
  • Được gọi đến sớm: Bạn có chắc chắn rằng componentDidMount đã được gọi không?
+0

ID là chính xác và meteor (tôi nghĩ) xử lý componentDidMount. Vấn đề là cố gắng tìm "this.refs" với một biến. –

+0

Ví dụ: var A = foo; React.findDOMNode (this.refs.A) .value; –

Các vấn đề liên quan