2016-07-24 42 views
-1

我有一個反應中的複選框,用它的狀態作爲參數調用一個函數。在React中調用一個參數作爲狀態

<p> 
    <input 
    type="checkbox" 
    name="hobbies" 
    checked={this.state.All} 
    onChange={this.checkHobbies.bind(this, "all")} 
    /> 
    All Hobbies 
</p> 

我的問題的代碼就出在這裏:

checkHobbies(name) { 
    this.setState({ 
    name: !this.state.name, 
    }); 
} 

SETSTATE然而,解釋的名稱作爲實際狀態而不是變量的參數,在這種情況下是所謂的「所有」變量傳遞。我將如何讓這個代碼將解釋功能:

this.setState({ 
    all: !this.state.all 
}); 
+0

你的意思[名]:this.state [名]? –

+0

@Utro是的,這就是我的意思 – lost9123193

回答

1
checkHobbies(name) { 
    this.setState({ 
    [name]: !this.state[name], 
    }); 
} 

如果爲「所有」,那麼seState傳遞的值將被解釋如下。

this.setState({ 
    all: !this.state.all 
}); 
+0

這工作,謝謝你! – lost9123193

0

使用

checkHobbies(name) { 
    this.setState({ 
    [name]: !this.state[name], 
    }); 
} 
相關問題