【问题标题】:React Edit Table反应编辑表
【发布时间】:2020-07-09 12:27:25
【问题描述】:

我正在尝试编辑单行但编辑所有行,还尝试添加将填充某些行的下拉列表,任何建议或信息将不胜感激。

这是我正在使用的代码,

<TableBody>
    {item.userBankAccount.map((item, index) => {
        return (
            <TableRow hover key={index}>
                {!currentlyEditing ? (
                    <TextField
                        label="bankName"
                        name="bankName"
                        onChange={(e) => this.onChangeUserBankAccount(e, index)}
                        type="text"
                        value={item.bankName || ''}
                    />
                ) : (
                    <TableCell>{item.bankName}</TableCell>
                )}

                {!currentlyEditing ? (
                    <TextField
                        label="BankAddress"
                        name="bankAddress"
                        onChange={(e) => this.onChangeUserBankAccount(e, index)}
                        type="text"
                        value={item.bankAddress || ''}
                    />
                ) : (
                    <TableCell>{item.bankAddress}</TableCell>
                )}

                {!currentlyEditing ? (
                    <TextField
                        label="bankSwift"
                        name="bankSwift"
                        onChange={(e) => this.onChangeUserBankAccount(e, index)}
                        type="text"
                        value={item.bankSwift || ''}
                    />
                ) : (
                    <TableCell>{item.bankSwift}</TableCell>
                )}
            </TableRow>
        );
    })}
</TableBody>

【问题讨论】:

    标签: reactjs dropdown edit populate


    【解决方案1】:

    问题就在这里,

    TableRow 的每一行都有

    {!currentlyEditing ? (
    

    这对所有TableRow 都是一样的。所以,如果一个人得到currentlyEditing = true,那么所有这些都变得可编辑。

    解决办法:

    只需在TableRow 中取currentlyEditingstate
    所以,TableRow 的每个人都有自己的currentlyEditing 状态,
    并且,因此同时其他人将无法编辑

    【讨论】:

    • 您好,感谢您的反馈,但您能否举个例子,在 react 中还是新手
    • 我将不得不创建一些东西来制作示例,你能给我任何沙箱吗,这样会快很多
    • 当你说只使用表格行中的状态时,你的意思是,只创建一个 {!currentlyEditing ? } 里面的表格行,有点困惑
    • @ChrisJnrPotgieter 我的意思是你的TableRow 正在从主表组件获取他们的状态数据,这导致了问题
    • 所以,只需将该状态放在TableRow 组件中,而不是主表组件中
    猜你喜欢
    • 2018-10-13
    • 1970-01-01
    • 2018-09-05
    • 2019-05-08
    • 1970-01-01
    • 2020-06-25
    • 2022-01-24
    • 2020-11-26
    • 2019-03-06
    相关资源
    最近更新 更多