React Redux 工具包 - 输入字段的状态管理
React Redux toolkit - state management for input field
我正在用 React Native 构建应用程序,并开始学习 redux 工具包。
以前我在本地管理状态。
出于某种原因,我无法理解如何使用 redux 工具包保存文本字段的动态输入。
我能找到的所有示例都包含本地 (setState)。
我已经设法处理了我所有的复选框和计数器。但是在尝试处理我的“onChangeText”函数时我仍然收到错误。
我正在尝试将“odo”读数填充为 15,然后允许用户将其更改为正确的数字。目前我的代码returns“未定义完成了这项工作”。
我搜索了论坛、官方文档和 youtube,但找不到任何处理工具包的相关示例 (dispatch/payload)。
感谢您的帮助!
//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>;
我正在用 React Native 构建应用程序,并开始学习 redux 工具包。
以前我在本地管理状态。
出于某种原因,我无法理解如何使用 redux 工具包保存文本字段的动态输入。
我能找到的所有示例都包含本地 (setState)。
我已经设法处理了我所有的复选框和计数器。但是在尝试处理我的“onChangeText”函数时我仍然收到错误。
我正在尝试将“odo”读数填充为 15,然后允许用户将其更改为正确的数字。目前我的代码returns“未定义完成了这项工作”。
我搜索了论坛、官方文档和 youtube,但找不到任何处理工具包的相关示例 (dispatch/payload)。
感谢您的帮助!
//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>;