reactjs - React Redux 工具包 - 输入字段的状态管理

标签 reactjs react-native redux redux-toolkit

我正在使用 React Native 构建一个应用程序,并开始学习 redux 工具包。

以前我在本地管理我的州。

出于某种原因,我无法理解如何使用 redux 工具包保存文本字段的动态输入。

我能找到的所有示例都包含本地(setState)。

我已经成功处理了所有复选框和计数器..但是在尝试处理“onChangeText”函数时我继续收到错误。

我试图将“odo”读数填充为 15,然后允许用户将其更改为任何正确的数字。目前我的代码返回“未定义的工作”。

我浏览了论坛、官方文档和 youtube,但找不到任何处理工具包(调度/有效负载)的相关示例。

感谢您的帮助!

//SLICE

import {
  createSlice
} from "@reduxjs/toolkit";

export const pickupInputSlice = createSlice({
  name: 'pickupInput',
  initialState: {
    odo: '15',
    waitTime: '11',
    notes: '12',
  },
  reducers: {
    odo: (state, action) => {
      state.odo = action.payload + "did this work";
    },
    waitTime: (state, action) => {
      state.waitTime = action.payload;
    },
    notes: (state, action) => {
      state.notes = action.payload;
    },
  }
});

export const {
  odo,
  waitTime,
  notes
} = pickupInputSlice.actions;

export default pickupInputSlice.reducer;


//SCREEN 

const odoReading = useSelector((state) => state.pickupInput.odo)


  <
  View >
  <
  Text style = {
    styles.checklistText
  } >
  Odometer Reading <
  /Text> <
  TextInput
style = {
  styles.checklistTextInput
}
autoCapitalize = 'none'
autoCorrect = {
  false
}
keyboardType = 'number-pad'
maxLength = {
  6
}
value = {
  odoReading
}
onChangeText = {
  () => dispatch(odo(odo.payload))
}
/> <
/View>

最佳答案

您必须将从 onChangeText 收到的值传递给 odo 函数

<View>
  <Text style={styles.checklistText}>Odometer Reading </Text>
  <TextInput
    style={styles.checklistTextInput}
    autoCapitalize="none"
    autoCorrect={false}
    keyboardType="number-pad"
    maxLength={6}
    value={odoReading}
    onChangeText={value => dispatch(odo(value))} // pass value to reducer function as payload
  />
</View>;

关于reactjs - React Redux 工具包 - 输入字段的状态管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72063622/

相关文章:

javascript - 为什么我们使用 () => [] 而不是 []?

javascript - 使用 Typescript 允许 React 组件上的任意数据-* 属性

java - 可以在前端将数据导出为pdf格式吗?

ios - React Native iOS 应用程序在使用 xcode 9.0 的 iOS 11.3 上崩溃 "EXC_BREAKPOINT (SIGTRAP)"

javascript - ActivityIndi​​cator 在 native react 中不起作用

reactjs - reselect createStructuredSelector 如何在 Typescript 中工作?

reactjs - 在这个 redux reducer 中使用 Object.assign 的目的是什么?

javascript - 如何在构建时以不同的方式构建开发环境和生产环境?等)数据库配置

reactjs - 如何在表格行/Material UI 的中间设置图像和段落

javascript - 等待异步数据以状态存储在 React 或 React Native 中的正确方法