我正在用 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>
uj5u.com熱心網友回復:
您必須將從 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>;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/469249.html
上一篇:卡片組件不會重新渲染
