React antd 组件

antd list列表

dataSource里面放列表数据
父页面传值在子页面解构使用
actions={[]}里面可以写按钮在这里插入图片描述在父页面传递list全部数据 还有事件 在子页面可以解构直接使用

每个卡片封装成一个单独组件循环渲染

这是父页面

	<List
        grid={{ gutter: 16, column: 4 }}
        dataSource={list}
        renderItem={item => (
          <List.Item>
            <Listcard item={item} />
          </List.Item>
        )}
      />
`

这是子页面 接受item 每一个对象

function Listcard({ item }) {
  return (
    <Card title={item.title}>Card content</Card>
  )
}

antd form 表单

要声明一个 const [form] = Form.useForm(); 钩子函数
还要在form表单里 form={form} 绑定
const [list, setlist] = React.useState([])
前面是值 后面是方法
解构获取的总数据 然后更改

 let nlist = []
        nlist = res.data.result.list.map(function (x, y) {
          return { ...x, ...JSON.parse(x.info) };
 });
setlist(nlist)

路由动态传值

 props.history.push({
      pathname: '/bj/inout',
      search: qs.stringify(value)
  })

接受动态路由的传值

   const { id } = qs.parse(props.location.search.substr(1))

解构上面传过的id
判断有没有id 如果没有是添加 有是编辑
表单清空值 form.resetFields()
从生命周期React.useEffect(()=>{},[])里
let objValues = qs.parse(props.location.search.substr(1))
form.setFieldsValue(objValues) 编辑回填

表单时间

在表单提交的时候 解构values 就是表单获取的全部值
要安装moment并引用

import moment from 'moment'

moment().format();
这就是获取表单时间

  var str = { ...values }
  str.time = values.time.format('YYYY-MM-DD')
  

回填表单时间

  let day = moment(objValues.time)
      console.log(day)
      objValues.time = day

console.log(moment(‘2010-11-20’).isBetween(‘2010-10-19’, ‘2010-10-25’))
这是输出一个布尔值 第一个时间是否在后两个时间之间

antd Layout布局

在common里面写一个主体组件 要解构一个{children}
替换Content 子页面用的时候 引用 将最外面的盒子替换成组件名
**

路由守卫

import { BrowserRouter, Route, Switch, Redirect } from 'react-router-dom';
<BrowserRouter>
      <Switch>
        <Route path="/log" component={Log} />
        <Route path="*" render={() => {
          let token = localStorage.getItem('data')
          if (token) {
            return (
              <Mark>
                <Switch>
                  <Route path="/form" component={FormList} />
                  <Route path="/" component={Home} />
                </Switch>
              </Mark>
            )
          }
          return <Redirect to="/log" />
        }} />
      </Switch>
    </BrowserRouter>

switch开关

<Switch onChange={(e) => onChange(e, 对象)} checked={itch} />

赋值接受对象开关的属性
判断字符串改成布尔值
赋初始值

 var itsw = item.switch
  if (itsw == 'false') {
    itsw = false
  }
  if (itsw == 'true') {
    itsw = true
  }
  const [itch, setch] = React.useState(itsw)
  const onChange = (checked, e) => {
    setch(checked)
    e.switch = checked
    http.post('/Home/Apis/samplePut', { info: e }).then((res) => {
      console.log(res.data);
    })
  }

分页

 pagination={{
          current: page,
          pageSize: size,
          total: count,
          onChange(page) {
            setpage(page)
          }
        }}

在onchage事件里面更改页数

表格

        <Table rowSelection={{
          selectedRowKeys: isList,
          onChange(selectedRowKeys, selectedRows) {
            // console.log(selectedRowKeys, selectedRows);
            if (selectedRowKeys.length > 3) {
              return false
            } else {
              setId(selectedRowKeys)
            }
          }
        }} rowKey="id" pagination={{
          current: page, pageSize: size, total: count, onChange(num) {
            // console.log(num)
            setpage(num)
          }
          
        }} dataSource={list} columns={columns} />
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值