开发者问题收集

React+Redux:状态未定义

2016-08-01
1188

我正在尝试使用 React 和 Redux,但在使用 connect 时遇到了一些问题。

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

在第一个示例中,我收到错误消息 无法获取未定义的“文本” ,而第二个示例运行时没有问题。这背后的原因是什么?

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

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

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

(state) => ({})

JavaScript 中的标签用于控制执行流程。这不是推荐的模式,但工作原理如下:

function () {
text: while(someCondition){ // Label
  if (someOtherCondition) {
    continue text;
  }
} 
}
Jamie Dixon
2016-08-01

DOCS:

将正文括起来以返回对象文字表达式:

const AppConnected = connect(state => ({text: state.text}))(App);
Serhii Baraniuk
2016-08-01