<ListSearch onSearch={(searchType, searchKeyword) => { this .onSearch(searchType, searchKeyword)}} />
<TableList tableHeads={tableHeads}>
this .state.list.map((product, index) => {
return (
<tr key={index}>
<td>{product.id}</td>
<p>{product.name}</p>
<p>{product.subtitle}</p>
<td>¥{product.price}</td>
<span>{product.status == 1 ? '在售' : '已下架'}</span>
<button className=" btn btn-xs btn-warning "
onClick={(e) => { this .onSetProductStatus(e, product.id, product.status)}}>{product.status == 1 ? '下架' : '上架'}</button>
<Link className=" opear " to={`/product/detail/${product.id}`}>详情</Link>
<Link className=" opear " to={`/product/save/${product.id}`}>编辑</Link>
</TableList>
<Pagination current={ this .state.pageNum}
total={ this .state.total}
onChange={(pageNum) => this .onPageNumChange(pageNum)}/>

2.请求后台数据

this .state = {
list : [],
pageNum : 1,
listType : 'list'
componentDidMount(){
this .loadProductList();
// 加载商品列表
loadProductList(){
let listParam = {};
listParam.listType = this .state.listType;
listParam.pageNum = this .state.pageNum;
//如果是搜索的话需要传入搜索类型和搜索关键字
if ( this .state.listType === 'search'){
listParam.searchType= this .state.searchType;
listParam.keyword = this .state.searchKeyword;
_product.getProductList(listParam).then( res => {
this .setState(res);
}, errMsg => {
this .setState({
list : []
_mm.errorTips(errMsg);

3.当页码切换时,更新state里边pageNum的值

//更新页码
onPageNumChange(pageNum){
//获取当前页,然后更改this.state里边的pageNum,成功以后调用this.loadProductList()方法
this .setState({
pageNum:pageNum
}, () => {
this .loadProductList();

4.改变商品的上下架状态

//改变商品的上下架状态
//1是上架,2是下架
onSetProductStatus(e,productId,currentStatus){
let newStatus = currentStatus == 1 ? 2 : 1;
// 1是上架 ,2 是下架 确认应该是说相反的
let confirmTips=currentStatus == 1 ? " 确认下架该商品吗 " : " 确认上架该商品吗 "
if (window.confirm(confirmTips)){
_product.setProductStatus(
productId:productId,
status:newStatus
).then(res => {
_mm.successTips(res);
this .loadProductList();
}, errorMsg => {
_mm.errorTips(res);