2016-08-01 2 views
0

Я играю с React и Redux и сталкивался с некоторыми проблемами с подключением.React + Redux: State 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.

Для возврата объектного литерала со стрелки необходимо обернуть его в ().

(state) => ({})

Этикетки в JavaScript используются для управления потоком выполнения. Это не рекомендуется, но модель работает следующим образом:

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

DOCS:

скобки тело вернуть буквальное выражение объекта:

const AppConnected = connect(state => ({text: state.text}))(App); 
Смежные вопросы