2017-01-11 4 views
-1

Ich kann meine Argumente so übergeben, wenn ich Requisiten von einer anderen Komponente habe, wenn ich es6 Pfeilfunktion in JSX verwende.pass arg to function wenn es6 bind mit react verwendet

class MyComponent extends Component({ 
    myFunc(param){ 
    console.log(param); 
    } 
    render(
    return(
     <button onClick="(param)=>myFunc(param)"></button> 
    ) 
) 
}) 

Aber was, wenn ich Ihnen diese

Art verwenden
class MyComponent extends Component({ 
    constructor(){ 
    this.myFunc = this.myFunc.bind(this); 
    } 
    myFunc(){ 

    } 
    render(
    return(
     <button onClick={this.myFunc}></button> 
    ) 
) 
}) 

Wie kann ich die params übergeben?

constructor(){ 
    this.myFunc = this.myFunc.bind(this); 
} 

myFunc(props){ 
    console.log(props); 
} 
+0

für welchen Zweck möchten Sie dies verwenden? ist es für etwas wie das Löschen eines untergeordneten Objekts? – illusionist

+0

@illusionist Ich möchte vielleicht etwas an die Kinder-Komponente weitergeben. –

+0

'onClick = {this.myFunc.bind (this)}' oder 'onClick = {e => this.myFunc (e)}' – naomik

Antwort

0

Sie haben den Fehler in dieser Zeile

constructor(){ 
    this.myFunc = myFunc.bind(this); 
} 

Dies sollte Werke gemacht. Sie können jedoch auf andere Weise mit e.target zugreifen. Aber ich bin mir nicht sicher, in welchem ​​Szenario Sie so wollen.

class MyComponent extends Component({ 
    constructor(){ 
     this.myFunc = this.myFunc.bind(this); 
    } 
    myFunc(e){ 
    console.log(e.target.arg); 
    } 
    render(){ 
     return(
     <button arg={yourargument} onClick={this.myFunc}></button> 
    ) 
    } 
}) 
0

Sie können nicht direkt wie die erste passieren: