react使用ant design组件开发遇到的问题及解决

Input

情景:在Input中展示原有值,并且修改后获取到修改后的值。

问题:value 和一个defaultValue。使用defaultValue的时候展示默认的值是可以的,但是如果你修改了那个值页面数据是不会更新的,即你获取到的值为原有值。如果你去使用value接收原有值的时候又会发现他的输入框你输入不了任何值。

解决:在Input自带的onChange方法中获取修改后的值。在onChange中使用event.target.value捕获输入框变化的值,然后赋值给一个全局变量,最后在onPressEnter中调用该变量,即可获取新值。

const [editName, setEditName] = useState('张三')

const handleOk = () => {
    console.log(editName)
}

const change = (e) => {
    setEditName(e.target.value)
}
<Input onPressEnter={handleOk} defaultValue={editName} onChange={e=>change(e)} />
             

Table

情景:对数据进行批量选择操作。

问题:无法批量选中,最终发现每条数据必须要有key值,而后端传输的数据通常没有key字段。

解决:在Table上加上rowKey字段赋值,可以rowKey=“id”

// 批量选择,返回id的数组
const rowSelection = {
    onChange: (selectedRowKeys: any, selectedRows: any) => {
        let params: number[] = [];
        selectedRows.map((row: { id: any; })=>{
            params.push(row.id)
        })
        console.log(params)
    }
};

<Table columns={columns} rowSelection={{ ...rowSelection }} dataSource={data} rowKey="id"}/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值