我有一个组件连接到我的商店。该组件发送操作并正确更改状态(请参阅日志)。但我的组件应该显示此状态更改。但它不会重播。
下面是我的代码:
//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);
最后,我的组件希望在状态更改后更新state和rerender:
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>
);
}
}
这样您就可以看到状态正确地改变了。但在此之后,我希望组件再次呈现(控制台和文本标记中的“rendering...”显示true而不是false)
我看不出有什么错误。你能帮帮我吗?
尝试在connect
中定义isLoggedIn值:
(state) => {
return {
isLoggedIn: state.loginReducer.isLoggedIn
}
}
问题内容: 保持不变,尽管我在函数中调度了一个动作: 输出为NO_AUTH(的初始值) 减速器: 知道为什么吗? 问题答案: 您当前正在直接在未映射到的componentDidMount内部调度: 这应该做的工作: 现在,这将获得authState:
编辑:这是在添加到购物车按钮onclick事件时执行的函数: addToCart action creator如下所示:
正如标题所暗示的那样,我正在尝试以中的数组为目标,但如果您尝试过,您会猜到。这并不像听起来那么简单。我在这里看了几个问题(React:我如何更新setState上的state.item[1]?(使用JSFiddle)和数组中对象键的reactjs-setstate),但这两个问题都没有解决我的问题。 我需要的是在数组中指定一个特定的索引,并根据用户在
在这种情况下,我更改选择元素并调用数据更新方法。该方法从状态获取值。但是当数据更新时,状态还没有改变。当您再次调用数据更新时,状态已经更新了如何正确进行更新? 反应成分
在这个项目中,我使用了反应钩,这个片段用来改变项目的颜色主题,但有一个问题,我无法解决。常量lightTheme={...} Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eusmod tempor incidunt ut labore et dolore magna aliqua. 我的减速器:
我正在尝试使用React Redux。我遇到了这样一种情况:一个连接的组件(Coordinates.jsx)嵌套在另一个连接的组件(Canvas.jsx)中。 源代码https://github.com/RinatRezyapov/Vault-13.git(纱线安装,然后纱线开始) 在父组件画布中。jsx I在componentDidMount()中调度一个操作,该操作不可变地更改状态。 帆布js