2017-08-07 72 views
1

我試圖將狀態的兩個部分映射到我的組件。將多個狀態映射到一個組件的方式不錯嗎?它的工作原理,但我不知道是否讓你的專家嘲笑我的代碼!我的意思是你還有另一種方式嗎?將多個狀態映射到組件

const mapStateToProps = state => { 
    return (state.auth, state.sina); 
}; 

這個還曾:

const mapStateToProps = state => { 
    return {...state.auth, ...state.sina}; 
}; 
+0

'常量mapStateToProps =({權威性,新浪})=>( {auth,sina})' – madox2

+0

@ madox2 yours worked,but then try to this'const mapStateToProps = state =>({state.auth,state.sina});'這與你的一樣,但是會拋出錯誤,爲什麼?他們是一樣的不是嗎? – farmcommand2

+0

不要讓自己與這種奇特的語法混淆。它是對象解構和財產簡寫的結合。爲開始只使用對象文字:) – madox2

回答

3

mapStateToProps是常規的JavaScript功能。您可以返回對象文本與任何你想要的屬性,例如:

const mapStateToProps = state => { 
    return { 
    auth: state.auth, 
    sina: state.sina 
    }; 
}; 

,然後訪問它的組件內:

this.props.auth; 
this.props.sina; 
+0

謝謝我工作,但爲什麼這不起作用'const mapStateToProps = state => { return { state.auth, state.sina }; };' – farmcommand2

+0

創建對象字面量您需要定義鍵和值。你試圖做的是不是有效的JavaScript – madox2