1.在store資料夾中新建乙個檔案actiontypes.js,在該檔案中定義一些常量把type的型別賦值給他們並且匯出
export const change_input_value = 'change_input_value'
export const add_todo_item = 'add_todo_item';
export const delete_todo_item = 'delete_todo_item';
2.在todolist.js檔案中匯入actioontypes.js檔案,以及剛剛定義的常量
import from './store/actiontypes'
將type中原來的替換
3.在reducer.js檔案中引入actiontypes.js並將原來的替換
引入:import from './actiontypes'
替換:
附:todolist.js完整**:
import react, from 'react';
import 'antd/dist/antd.css';
import from 'antd';
import store from './store/index';
import from './store/actiontypes'
class todolist extends component
render() )}
/>)}
handleinputchange(e)
//通過dispatch(action)把資料傳遞給store
store.dispatch(action);
}handlestorechange()
handlebtnclick() ;
store.dispatch(action);
}handleitemdelete(index)
store.dispatch(action);
}}export default todolist;
reducer.js完整**:
import from './actiontypes'
//state:所有資料資訊
const defaultstate =
//reducer可以接收state,但是不可以修改
//設定state的預設資料:defaultstate
export default (state = defaultstate, action) =>
if (action.type === add_todo_item)
if (action.type === delete_todo_item)
return state;
}
結果:
型別的裝箱和拆箱
c 使用單類層次的單一繼承 所有類都繼承自object基類,而且不可能多重繼承。但是c 的介面提供了許多多重繼承的功能 型別的裝箱和拆箱 boxing and unboxing types 裝箱 boxing 和拆箱 unboxing 是使值型別 如整數 能夠被當成引用型別 物件 的處理過程。值被 ...
值型別的裝箱,拆箱
裝箱發生的事情 1.在託管堆中分配記憶體。分配的記憶體量是值型別各字段所需的記憶體量,還要加上託管堆所有物件都有的兩個額外成員 型別物件指標和同步塊索引 所需的記憶體量。2.值型別的字段複製到新分配的堆記憶體。拆箱發生的事情 1.獲取已裝箱物件中各個欄位的位址。2.將字段包含的值從堆複製到基於棧的值...
swift 可選型別,強制拆包,隱性拆包
當我們不知道變數的值時,可以將改變量設定為可選型別 表明str是可選型別 string型別或者nil型別 var str string?表明str是可選型別 是string型別或者nil型別 var str string?hello world str str?uppercasestring 拆包 ...