商品管理介面-MerchandiseList
修改程式剛執行的初始畫面
在src/navigator.js新增一個MerchandiseList 畫面
import { StackNavigator } from 'react-navigation';
import Home from './containers/Home';
import Counter from './containers/Counter';
import Camera from './components/Camera';
import PersonalInfo from './components/PersonalInfo';
import MerchandiseList from './components/MerchandiseList';
import NewMerchandise from './components/NewMerchandise';
const AppNavigator = new StackNavigator(
{
Home: { screen: Home },
Counter: { screen: Counter },
Camera: { screen: Camera },
PersonalInfo: { screen: PersonalInfo },
MerchandiseList: { screen: MerchandiseList },
NewMerchandise: { screen: NewMerchandise }
},
{
headerMode: 'screen',
navigationOptions: {
header: null
}
}
);
export default AppNavigator;src/reducers/nav.js的 routes 中的routeName 來決定初始畫面
使用Touchable 元件來增加回饋
使用src/components/__data__/merchandise_list.json 作為測試資料
import MOCKDATA from './__data_/merchandise_list.json
測試資料的資料結構
FlatList
data (資料來源)
renderItem (資料如何顯示)
keyExtractor (設置每個Item 的 Id)
使用
TouchableOpacity來實現Touch 的回饋與前往特定的頁面
在最下方增加新建商品的按鈕
圖文排版比例的設置 為 2:8
實現長按 item 的 ContextMenu,使用react-native 內建Modal 元件
animationType 動畫類型,
slide由下而上出現,而消失則由上而下的消失·
fade淡入淡出的方式
visible 是否顯示。
onRequestClose當Android 上的 back 鍵觸發。
High Order Component 封裝了元件共用的行為,對行為做reuse ,而非對畫面做reuse
實現connectModal hoc,並把openModal 與 closeModal 傳入,方便
WrappedComponent使用openModal 讓
WrappedComponent可以傳入自定義客製化的modalViewopenModal 也讓
WrappedComponent當下的context,譬如說當下的list item此Modal 並非blocking Modal,所以也實現了讓使用者點任意地方可以關掉此Modal,參考
TouchableOpacity的部分建立Modal 的 HOC
加入Context
使用方開始客製化他的畫面
在需要使用此Modal 的Modal 在export 之前,掛上connectModal ,並在item 按下後,開啟Modal ,並傳入自定義的畫面。
在按鈕被按下後,呼叫closeModal 的動作
Last updated
Was this helpful?