2016-08-01 166 views
0

我正在玩React和Redux,并遇到了连接问题。React + Redux:状态undefined

const AppConnected = connect((state) => {text: state.text})(App); 

在第一个示例中,我收到错误消息Cannot get 'text' of undefined,而第二个示例运行没有问题。这背后的原因是什么?

const AppConnected = connect((state) => { 
    return { 
     text: state.text 
    } 
})(App); 

回答

1

您没有像第一个例子那样返回对象,就像您认为的那样。您正在使用名为text的标签定义函数的主体。

要从箭头返回对象文字,您需要将其包装在()中。在JavaScript

(state) => ({})

标签用于控制执行的流程。这不是一个推荐的模式,但工作原理是这样:

function() { 
text: while(someCondition){ // Label 
    if (someOtherCondition) { 
    continue text; 
    } 
} 
} 
2

DOCS:

圆括号的身体恢复的对象常量表达式:

const AppConnected = connect(state => ({text: state.text}))(App); 
相关问题