Reactjs React Native和Redux:组件不´;状态更改后重新加载

Reactjs React Native和Redux:组件不´;状态更改后重新加载,reactjs,react-native,redux,react-redux,Reactjs,React Native,Redux,React Redux,我有一个组件连接到我的商店。 此组件分派操作并正确更改状态()。 但是我的组件应该显示此状态更改。但它不会重播 这是我的密码: 我的Redux商店、reducer和Action如下所示: //store.js import { createStore, applyMiddleware } from 'redux'; import thunk from 'redux-thunk' import { logger } from 'redux-logger' import reducer fro

我有一个组件连接到我的商店。 此组件分派操作并正确更改状态()。 但是我的组件应该显示此状态更改。但它不会重播

这是我的密码:

我的Redux商店、reducer和Action如下所示:

//store.js
import { createStore, applyMiddleware } from 'redux';
import  thunk  from 'redux-thunk'
import { logger } from 'redux-logger'

import reducer from "./src/reducers/index"

const middleware=applyMiddleware(thunk, logger)
export default store = createStore(reducer, middleware);


//reducers/index.js
const initialState = {
    isLoggedIn:false,
}
export default loginReducer=(state = initialState, action) => {
  switch (action.type) {

  case "LOGGED_IN":
    return { ...state, isLoggedIn:true };

  default:
    return state
  }
};


//actions.js
export const logIn = (token) => ({
  type: "LOGGED_IN",
  payload: token
})
import { AppRegistry } from 'react-native';
import App from './src/App';
import React from 'react';
import { Provider } from 'react-redux';
import store from './store'

/**
 * Wrap App in Redux Provider
 */
const MainApp = () => (
    <Provider store={store}>
        <App />
    </Provider>
)
AppRegistry.registerComponent('SalesforcegoesmobleReactNative', () => MainApp);
我的React本机应用程序包装如下:

//store.js
import { createStore, applyMiddleware } from 'redux';
import  thunk  from 'redux-thunk'
import { logger } from 'redux-logger'

import reducer from "./src/reducers/index"

const middleware=applyMiddleware(thunk, logger)
export default store = createStore(reducer, middleware);


//reducers/index.js
const initialState = {
    isLoggedIn:false,
}
export default loginReducer=(state = initialState, action) => {
  switch (action.type) {

  case "LOGGED_IN":
    return { ...state, isLoggedIn:true };

  default:
    return state
  }
};


//actions.js
export const logIn = (token) => ({
  type: "LOGGED_IN",
  payload: token
})
import { AppRegistry } from 'react-native';
import App from './src/App';
import React from 'react';
import { Provider } from 'react-redux';
import store from './store'

/**
 * Wrap App in Redux Provider
 */
const MainApp = () => (
    <Provider store={store}>
        <App />
    </Provider>
)
AppRegistry.registerComponent('SalesforcegoesmobleReactNative', () => MainApp);
从'react native'导入{AppRegistry};
从“./src/App”导入应用程序;
从“React”导入React;
从'react redux'导入{Provider};
从“./store”导入存储
/**
*在Redux提供程序中包装应用程序
*/
常量MainApp=()=>(
)
AppRegistry.registerComponent('SalesforcegoesmobleReactNative',()=>MainApp);
最后,我希望我的组件在状态更改后更新状态并重新加载:

import React, { Component } from 'react';
import { View, Text, Button } from 'react-native';
import { connect } from "react-redux"
import { logIn } from '../actions/actions';

@connect(
    (state) => {
        return {
            isLoggedIn: state.isLoggedIn
        }
    },
    (dispatch) => {
        return {
            updateLogin: id => dispatch(logIn(id))
        }
    }
)
export class InvoiceList extends Component {
    render() {
        console.log("rendering...")
        return (
            <View>
                <Button title="Update Login" onPress={() => this.props.updateLogin("test")} />
                <Text>{this.props.isLoggedIn ? "true" : "false"}</Text>
            </View>
        );
    }
}
import React,{Component}来自'React';
从“react native”导入{视图、文本、按钮};
从“react redux”导入{connect}
从“../actions/actions”导入{logIn};
@连接(
(州)=>{
返回{
isLoggedIn:state.isLoggedIn
}
},
(调度)=>{
返回{
updateLogin:id=>dispatch(登录(id))
}
}
)
导出类InvoiceList扩展组件{
render(){
console.log(“呈现…”)
返回(
this.props.updateLogin(“test”)}/>
{this.props.isLoggedIn?“真”:“假”}
);
}
}
因此,您可以正确地看到状态更改。 但在此之后,我希望组件再次呈现(“呈现…”在控制台和文本标记中显示true而不是false)


我看不出有错。你能帮我吗?

试着像在
连接中那样定义isLoggedIn值:

(state) => {
        return {
            isLoggedIn: state.loginReducer.isLoggedIn
        }
    }

尝试像在
连接中那样定义isLoggedIn值:

(state) => {
        return {
            isLoggedIn: state.loginReducer.isLoggedIn
        }
    }