Redux商店没有更新

哈莫哈姆迪

我已经使用构建了此应用create-react-native-app,该操作已分派,但状态尚未更新,我不确定为什么。

我看到正在记录操作(使用中间件记录器),但是商店没有更新,我现在仅在Add_Deck上工作

这是我的减速器:

// import 
import { ADD_CARD, ADD_DECK } from './actions'

// reducer
export default function decks(state ={}, action){
    switch(action.type){          
        case ADD_DECK: 
            return {
                ...state,
                [action.newDeck.id]: action.newDeck
            }

        case ADD_CARD: 
            return {
                ...state,
                [action.deckID]: {
                    ...state[action.deckID],
                    cards: state[action.deckID].cards.concat([action.newCard])

                }
            }

        default: return state 
    }
}

动作文件:

// action types
const ADD_DECK = "ADD_DECK";
const ADD_CARD = "ADD_CARD";

// generate ID function
function generateID() {
  return (
    "_" +
    Math.random()
      .toString(36)
      .substr(2, 9)
  );
}
// action creators

function addDeck(newDeck) {
  return {
    type: ADD_DECK,
    newDeck
  };
}
// export
export function handleAddDeck(title) {
  return dispatch => {
    const deckID = generateID();
    // const newDeck = { id: deckID, title, cards: [] };
    dispatch(addDeck({ id: deckID, title, cards: [] }));
  };
}


function addCard(deckID, newCard) {
  // { question, answer }, deckID
  return {
    type: ADD_CARD,
    deckID,
    newCard
  };
}

// export
export function handleAddCard(deckID, content) {
  // { question, answer }, deckID
  return dispatch => {
    const newCard = { [generateID()]: content };
    dispatch(addCard(deckID, newCard));
  };
}

react-native组件:

import React, { Component } from 'react';
import { View, Text, StyleSheet, TextInput, TouchableOpacity } from "react-native";
import {red, white} from '../utils/colors'

import { connect } from 'react-redux'
import { handleAddDeck } from '../redux/actions'

class AddDeck extends Component {
    state = {
        text:""
    }

    handleSubmit = () => {
      this.props.dispatch(handleAddDeck(this.state.text))
        this.setState(()=>{
            return { text: ""}
        })
    }
    render() {
        return (
          <View style={styles.adddeck}>
            <Text> This is add deck</Text>
            <TextInput
            label="Title"
              style={{ height: 40, borderColor: "gray", borderWidth: 1 }}
              onChangeText={text => this.setState({ text })}
              placeholder="Deck Title"
              value={this.state.text}
            />
            <TouchableOpacity style={styles.submitButton} onPress={this.handleSubmit}>
                <Text style={styles.submitButtonText}>Create Deck</Text>
            </TouchableOpacity>
          </View>
        );
    }
}

function mapStateToProps(decks){
  console.log("state . decks", decks)
  return {
    decks
  }
}

export default connect(mapStateToProps)(AddDeck);

const styles = StyleSheet.create({
  adddeck: {
    marginTop: 50,
    flex: 1
  },
  submitButton: {
    backgroundColor: red,
    padding: 10,
    margin: 15,
    height: 40,

  },
  submitButtonText: {
    color: white
  }
});
任意的

我猜您忘记了从操作文件中导出类型,因此switch(action.type)不会触发所需的case语句。

也许尝试添加以下内容:

export const ADD_DECK = "ADD_DECK";
export const ADD_CARD = "ADD_CARD";

或进一步调试只是看这些值是否是您要寻找的值:

export default function decks(state = {}, action) {
    console.log({type:action.type, ADD_DECK}); // see what values the app has

    // further code ...
}

希望对您有所帮助!如果没有,请通知我,以便我们进一步进行故障排除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Redux商店没有更新

来自分类Dev

没有Play商店的Facebook更新

来自分类Dev

Redux商店没有有效的reducer

来自分类Dev

Redux不更新商店

来自分类Dev

Redux 没有更新 initialState

来自分类Dev

在对商店进行任何更新时,redux是否会评估商店的所有侦听器?

来自分类Dev

Android检查没有Play商店的新更新

来自分类Dev

Redux商店奇怪地更新

来自分类Dev

React Redux 没有更新状态

来自分类Dev

Redux | 为什么这个Redux的state参数没有被更新?

来自分类Dev

将测试应用定向到市场网址后,没有Play商店更新

来自分类Dev

没有使用 Play 商店中的 Beta 测试自动更新

来自分类Dev

告诉商店在没有实际数据更改的情况下进行更新

来自分类Dev

为什么观察者对我商店中的更新没有反应?

来自分类Dev

React Redux CreateSlice Post Api没有采用更新的值

来自分类Dev

为什么我的redux状态没有更新

来自分类Dev

React Native - Redux ~ 没有被调用时更新道具

来自分类Dev

当屏幕渲染时,本机 redux 道具没有更新

来自分类Dev

React + Redux:商店更新时如何更新状态

来自分类Dev

有没有办法将应用程序部署到 google play 商店,但无需通过 google play 商店即可推出任何更新?

来自分类Dev

商店初始化后更新redux reducer

来自分类Dev

在Redux商店中查找和更新(集合中的)商品

来自分类Dev

Redux:在商店状态更新时重新渲染子级

来自分类Dev

更改商店后,响应redux UI不更新

来自分类Dev

Redux 商店更新后,React 组件未收到道具

来自分类Dev

商店没有有效的减速器?

来自分类Dev

有没有一种方法可以不使用Google Play商店对我服务器上的新更新进行身份验证?

来自分类Dev

我的Redux状态没有更新,尽管旧状态与新状态不相等

来自分类Dev

React Redux:我的React组件没有收到更新的数组作为prop

Related 相关文章

  1. 1

    Redux商店没有更新

  2. 2

    没有Play商店的Facebook更新

  3. 3

    Redux商店没有有效的reducer

  4. 4

    Redux不更新商店

  5. 5

    Redux 没有更新 initialState

  6. 6

    在对商店进行任何更新时,redux是否会评估商店的所有侦听器?

  7. 7

    Android检查没有Play商店的新更新

  8. 8

    Redux商店奇怪地更新

  9. 9

    React Redux 没有更新状态

  10. 10

    Redux | 为什么这个Redux的state参数没有被更新?

  11. 11

    将测试应用定向到市场网址后,没有Play商店更新

  12. 12

    没有使用 Play 商店中的 Beta 测试自动更新

  13. 13

    告诉商店在没有实际数据更改的情况下进行更新

  14. 14

    为什么观察者对我商店中的更新没有反应?

  15. 15

    React Redux CreateSlice Post Api没有采用更新的值

  16. 16

    为什么我的redux状态没有更新

  17. 17

    React Native - Redux ~ 没有被调用时更新道具

  18. 18

    当屏幕渲染时,本机 redux 道具没有更新

  19. 19

    React + Redux:商店更新时如何更新状态

  20. 20

    有没有办法将应用程序部署到 google play 商店,但无需通过 google play 商店即可推出任何更新?

  21. 21

    商店初始化后更新redux reducer

  22. 22

    在Redux商店中查找和更新(集合中的)商品

  23. 23

    Redux:在商店状态更新时重新渲染子级

  24. 24

    更改商店后,响应redux UI不更新

  25. 25

    Redux 商店更新后,React 组件未收到道具

  26. 26

    商店没有有效的减速器?

  27. 27

    有没有一种方法可以不使用Google Play商店对我服务器上的新更新进行身份验证?

  28. 28

    我的Redux状态没有更新,尽管旧状态与新状态不相等

  29. 29

    React Redux:我的React组件没有收到更新的数组作为prop

热门标签

归档