2016-03-29 16 views
2

ReactJS (Mastering React) öğrenme örnekleriyle çalışıyorum. Örnekleri yeniden oluştururken, birkaç ifade ile clueless ve bazı yardım için minnettarım.ReactJS'de this.method.bind (null, ...) değerini anlamak için?

Fiddle: Composing Components

ilk

... 
//Why are we passing null in update.bind(...)? 
//Is null here equivalent to 'this'? 

<TextBox label='First Name' update={this.update.bind(null,'firstName')}></TextBox> 
... 

ikinci

Update yöntemi beklediği bir anahtar ve adlandırılan bir değer (bakınız aşağıdaki metot tanımlı) Ancak

... 
    update: function(key, value) { 
      var newState = {}; 
      newState[key] = value; 
      this.setState(newState); 

      //this.setState({[k]:v}); 
     }, 
... 

, Tek bir parametre ile, doğru anahtar righ ile güncellenir t değeri.

//Aren't we supposed to pass two parameters? 
this.props.update(this.refs.newText.value); 

cevap

2

this.update.bind(null,'firstName') bu kod gelir - this.updatethisnull için ayarlayın ve bir 'firstName' olarak ilk argüman ayarlamak, o zaman çalışması için bu referansı arayacak zaman - ilk bağımsız 'firstName' olacak ve ikinci sen tarafından ayarlayabilirsiniz kendinizi. biz bu

var fn = function (key, value) { 
 
    console.log(key); 
 
    console.log(value); 
 
}; 
 

 
var f = fn.bind(null, 'x'); 
 

 
f('y');

gibi örnekten kodunu kolaylaştırabilirsiniz
+1

Vaov! Başar basitleştirilmiş örnek. – Bala

1

'Bind', javascript'te "currying" deseninin nasıl uygulanacağının bir örneğidir. Bu durumda güncelleme yöntemini siler, böylece güncelleme çağrıldığında, bu null olur ve 'firstName' ilk argüman olacaktır (bu durumda anahtar).

Bir şey eksik sürece) (bağlama bağlama ile boş değiştirmek sürece, değeri 'bu' çağrılır güncelleme yöntemi, boş olacaktır (bu, 'firstName')

İlgili konular