#1128·antd-admin

model更新问题

Author: lhc0229Created Jan 17, 2022Updated Jan 30, 2022

import React, { Component } from 'react' import { Page } from 'components' import './style.less' import { Button, Input, DatePicker, Select } from 'antd' import PropTypes from 'prop-types' import { connect } from 'umi' import ProjectTable from 'components_bus/project/list/table/index' import { history } from 'umi' import UpdateModal from 'components_bus/project/list/updateModal/index'

@connect(({ admin_project_list, loading }) => ({ admin_project_list, loading })) class ProjectList extends Component { constructor(props) { super(props) this.dispatch = this.props.dispatch this.loading = this.props.loading }

componentDidMount() { this.dispatch({ type: 'admin_project_list/getList', payload: this.props.admin_project_list.condition, }) }

// 搜索数据 handleSearch = () => { this.dispatch({ type: 'admin_project_list/updateCondition', payload: { page: 1, num: 10 }, }) }

// 更新输入框的关键字的值 handleChange = ({ target: { value } }) => { this.dispatch({ type: 'admin_project_list/setCondition', payload: { keyword: value }, }) }

// 重置 handleReset = () => { this.dispatch({ type: 'admin_project_list/updateCondition', payload: { page: 1, num: 10, order: 'created_at', desc: true, started_at: null, user_id: null, ended_at: null, keyword: null, }, }) }

// 更改时间 handleChangeTime = (data) => { this.dispatch({ type: 'admin_project_list/updateCondition', payload: data }) }

// 跳转详情页 handleGetDetails = (data) => { const id = data.id history.push({ pathname: '/project/details', query: { id } }) }

// 获取更新数据 handleUpdateData = (item) => { const data = { ...item } if (data.ended_at) { data.ended_at = data.ended_at.slice(0, 10) } if (data.started_at) { data.started_at = data.started_at.slice(0, 10) } this.dispatch({ type: 'admin_project_list/setShowUpdateModal', payload: { value: true }, }) this.dispatch({ type: 'admin_project_list/setUpdateData', payload: { data }, }) }

// 分页 handleChangePagination = (pagination, filters, sorter) => { const { current, pageSize } = pagination const { columnKey, order } = sorter const tempDict = { page: current, num: pageSize, order: columnKey } if (columnKey && order) { tempDict['order'] = columnKey tempDict['desc'] = order === 'descend' } this.dispatch({ type: 'admin_project_list/updateCondition', payload: tempDict, }) }

// 关闭修改弹窗 handleCancelUpdate = () => { this.dispatch({ type: 'admin_project_list/setShowUpdateModal', payload: { value: false }, }) }

// 提交更新 handleFinish = (data) => { this.dispatch({ type: 'admin_project_list/updateData', payload: data }) }

// 获取全部用户 getAllUser = (user) => { this.dispatch({ type: 'admin_project_list/getAllUser', payload: { user } }) }

// 更改时间 updateTime = (time, dateStrings) => { this.dispatch({ type: 'admin_project_list/updateDataTime', payload: { started_at: dateStrings[0], ended_at: dateStrings[1] }, }) }

//远程搜索创建用户 handleCreateUserSearch = (value) => { this.dispatch({ type: 'admin_project_list/getAllUser', payload: { user: value }, }) }

//根据用户id搜索用户 handleUserChange = (value) => { this.dispatch({ type: 'admin_project_list/updateCondition', payload: { user_id: value }, }) }

get data() { return this.props.admin_project_list }

render() { return (

项目名称:
<span style={{ marginLeft: '32px', marginRight: '8px' }}> 创建人: <Select allowClear style={{ width: '256px' }} showSearch value={this.data.condition.user_id} placeholder="请输入创建人" defaultActiveFirstOption={false} showArrow={false} filterOption={false} onSearch={this.handleCreateUserSearch} onChange={this.handleUserChange} notFoundContent={null} > {this.data.all_user.map((d) => { return ( <Select.Option key={d.id} value={d.id}> {d['real_name']} </Select.Option> ) })}
开始时间: <DatePicker placeholder="请选择开始时间" onChange={(date, dateString) => { this.handleChangeTime({ started_at: dateString, page: 1, }) }} />
结束时间: <DatePicker placeholder="请选择结束时间" onChange={(date, dateString) => { this.handleChangeTime({ ended_at: dateString, page: 1 }) }} />
<Button type="primary" style={{ marginRight: '16px' }} onClick={this.handleSearch} > 查询
<ProjectTable {...this.data} handleChangePagination={this.handleChangePagination} handleGetDetails={this.handleGetDetails} handleUpdateData={this.handleUpdateData} />
) } }

ProjectList.propTypes = { admin_project_list: PropTypes.object, location: PropTypes.object, dispatch: PropTypes.func, loading: PropTypes.object, }

export default ProjectList

当我从此页面离开时,页数为2,当我从其它页面重新进入此页面时,页数还是2,证明model在页面销毁时,没有被重置,请问model更新时机以及更新机制是什么样的