页面跳转;时间比较;model,view;获取路径id

2019-08-28  本文已影响0人  家有饿犬和聋猫
页面跳转
  goBack(){
        this.props.history.push('/msgPb/carouselMng/carlist');
    }
获取URL中的参数

this.props.match.params中包含地址栏的参数


image.png
时间比较:
if(moment(origin.startValue).format('YYYY-MM-DD') > moment(origin.endValue).format('YYYY-MM-DD')) {
            message.destroy();
            return message.info('开始时间不能大于结束时间');
        }

model和view分开(逻辑和视图分开)

目录结构:


image.png

index.js

import React from 'react';
import  Model from './model.js';
import  View from './view.js';

export default function(props) {
    return (
        <Model  {...props}>
            {
                prop=><View  {...prop} />
            }
        </Model>
    );
}


model组件专门用来写逻辑和交互,再将函数传给视图组件view

model.js

import React from 'react';
import bind from 'react-autobind';
export default class TopMenu extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            downModal: true
        
        };
        bind(this);
    }
  
    onDown() {
        this.setState({
            downModal: false
        });
    }
    render() {
        return (
            this.props.children({ 
                ... this.props, ...this.state,
                onDown: this.onDown,
        
            })
        );
    }
}


函数组件将状态和属性传给子组件

view.js

import React from 'react';

export default function(props) {
   
    const { downModal,onDown} = props;

   return(
             <Button type="primary"  onClick={onDown}><Icon type="search" />搜索</Button>
              //  需要传参数时:  //  onClick={onDown.bind(this, record)}
          )
}

使用函数组件无状态,专门用来渲染页面

进入某个详情页获取地址栏传的id:
<Route path={`${match.url}/detail/:id`} component={AppManageAddDetail} />
const { match:{params:{ id, }}} = this.props;

有时候params无参数,可以使用此方法强行在路径加入一个id

路由常用的方法:
            <Switch>
                 <Route  path={`${match.url}/publist`}  render={(prop)=><PubList {...prop} {...props}   />} />
                 <Route   path={`${match.url}/pudetail/:id`}  render={(prop)=><Pubdetail {...prop} {...props}  />}  />
                 <Redirect from={`${match.url}`}  to={`${match.url}/publist`}/>
            </Switch>

1 在render属性中渲染组件,传入属性
2 Redirect :默认路径或路径输入不完整或者输入有误的时候进入指定页面 to--> from
3 match.url动态获取路径

上一篇下一篇

猜你喜欢

热点阅读