У меня есть следующие действия создателя (s) и по какой-то причине, то код в отправки не выполняет, хотя я знаю, что loginSuccess() вызывается, потому что первые триггеры предупреждения. Что я делаю не так?Redux Отправка не работает в действии Творца
import facebook from '../api/facebook'
import * as types from '../constants/ActionTypes';
export function loginSuccess() {
alert("This alerts fine");
return dispatch => {
alert("This doesn't alert");
}
}
Я использую стук (или, по крайней мере, думает, что я правильно), как можно увидеть ниже при создании магазина.
import App from './containers/App';
import React, { Component } from 'react';
import { Provider } from 'react-redux';
import configureStore from './store';
import createReducer from './reducers';
import { createStore, applyMiddleware } from 'redux'
import Parse from 'parse/react-native';
import { AsyncStorage } from 'react-native';
import Settings from './settings';
import thunk from 'redux-thunk'
import logger from 'redux-logger'
const settings = Settings.load();
const middleware = [ thunk, logger() ]
const store = createStore(
createReducer(),
applyMiddleware(...middleware)
)
function setup() {
class Root extends Component {
render() {
return (
<Provider store={store}>
<App />
</Provider>
);
}
}
return Root;
}
module.exports = setup;
Компонент, который вызов loginSuccess()
показан ниже ...
import { View, Text } from 'react-native';
import React, { Component,PropTypes } from 'react';
import { loginSuccess,loginError } from '../../../actions/application'
import {
LoginButton,
GraphRequest,
GraphRequestManager,
GraphRequestConfig,
} from 'react-native-fbsdk'
class FacebookLogin extends Component {
_onLoginSuccess(result){
loginSuccess();
};
_onLoginError(error){
loginError();
}
_onLoginCancelled(){
}
render(){
return (
<View>
<LoginButton
readPermissions={["email","public_profile","user_friends"]}
onLoginFinished={
(error, result) => {
if (error) {
this._onLoginError(error);
} else if (result.isCancelled) {
this._onLoginCancelled();
} else {
this._onLoginSuccess(result);
}
}
}
onLogoutFinished={() => alert("User logged out")}/>
</View>
);
}
}
FacebookLogin.propTypes = {
navigator: PropTypes.object.isRequired,
};
export default FacebookLogin;
Поскольку вы возвращаете функцию от создателя действий, я предполагаю, что вы используете 'перевождь-thunk' промежуточное программное обеспечение для' redux' –
@VarunGupta I я верю, но как я могу проверить, что я его использую? – TheJediCowboy
Вы должны добавлять его при создании магазина в списке посредников, которые вы хотите применить к хранилищу. Проверьте эту страницу http://redux.js.org/docs/api/applyMiddleware.html –