从表列表中更新click的输入状态

时间:2019-12-05 12:40:48

标签: reactjs ant-design-pro

谢谢。

如何在按钮单击时将反应输入值更新为状态。我在表格行中列出了输入和按钮的列表。需要更新特定项目的状态数组。

代码在下面

    <TableCard>
      <Table dataSource={itemListArray}>
        <Column
          title="ItemName"
          align="left"
          render={item => (
                    <div>
                      <Input value={item.Name} />
                      <Icon onClick={???} />
                     </div>
          )}
        />
      </Table>
    </TableCard>

1 个答案:

答案 0 :(得分:1)

您应该为渲染创建一个新组件,该组件的名称为item。在此组件中,您可以使用其自己的状态和item

class Example extends React.Component {
      state: {
        itemListArray: [{ name: 'Name', noise: 'NA' }]
      }

      handleChange: Function = ({ index, name, value }) => {
        let newValueArray = [ ...itemListArray ]

        newValueArray[index] = {
          ...newValueArray[index],
          [name]: value,
        }

        this.setState({ itemListArray: newValueArray })
      }

      render() {
        const { itemListArray } = this.state

        return (
          <>
             <TableCard>
              <Table dataSource={itemListArray}>
                <Column
                  title="ItemName"
                  align="left"
                  render={(item, index) => (
                    <ExampleItem
                      item={item}
                      index={index}
                      onChange={this.handleChange}
                    />
                  )}
                />
              </Table>
            </TableCar
          </>
        );
      }
    }
    import React, { useState } from 'react';

    function ExampleItem({ item, index, onChange }) {
      handleClick: Function = () => {
        onChange({
          index,
          name: 'name',
          value: item.name + 'a',
        })
      }

      return (
        <>
          <Input value={item.name} />
          <Icon onClick={this.handleClick}>
            Add an A to name string
          </Icon>
        </>
      );
    }