如何在反应中更新按钮单击ag网格中的行

Posted

技术标签:

【中文标题】如何在反应中更新按钮单击ag网格中的行【英文标题】:how to update the row on button click in ag grid in react 【发布时间】:2022-01-16 22:29:03 【问题描述】:

我试图找到一种方法来更新单击按钮上的行,但我没有找到任何有用的东西。我正在尝试学习如何从前端使用 ag 网格进行基本的 crud,我找到了一种删除行的方法,这很容易,但对于更新,我没有找到任何有用的东西。所以如果有人知道该怎么做,请告诉我

import  useEffect, useState  from "react";
import axios from "axios";
import  AgGridReact  from 'ag-grid-react';
import React from 'react';
import 'ag-grid-community/dist/styles/ag-grid.css';
import 'ag-grid-community/dist/styles/ag-theme-alpine.css';

function Read(props) 
  const [record, setRecord] = useState('');

  useEffect(() => 
    axios.get('https://jsonplaceholder.typicode.com/comments')
    .then((response) =>
      console.log(response.data);
      setRecord(response.data);
    )
  , [])

  function update(data)
    console.log("hello");
  

const col= [
     headerName: "Name", field: "name",
     headerName: "Email", field: "email",
     headerName: "Body", field: "body",
    headerName: "", headerClass: 'new-class',
        cellRendererFramework:(params)=>
        <div>
                  <button onClick=() => update(params.data)>Edit</button>
        </div>
  ]

  return (
    <>
        <div className="ag-theme-alpine" style=height:'400px',
        width: '700px'>
        <AgGridReact
            columnDefs=col
            rowData=record
            >
        </AgGridReact>
      </div>
    </>
  );


export default Read;

【问题讨论】:

【参考方案1】:

为其分配一个id,然后使用更新函数传递id。然后您可以使用querySelectors获取该字段并更新它

【讨论】:

如何在反应中使用 querySelectors。可以请你做并发布它 假设我们有一个 id,然后在更新函数中,使用类似这样的东西 const updateRow = document.queryselector(id) 现在你要更新这一行,现在看看数据在哪里想要更新,只需 console.log(updateRow) 现在找到该数据所在的位置然后更新它。 兄弟我听不懂你在说什么?我会得到 id 但我怎样才能把那个值放在网格中。 当你得到 id 时,你可以得到那个元素,现在看看那个元素的哪个 childNode 有你要更改的数据,到达那个 childNode 并更改它的 textContent,这是其中之一方式

以上是关于如何在反应中更新按钮单击ag网格中的行的主要内容,如果未能解决你的问题,请参考以下文章

react ag网格中的行删除后如何刷新网格

如何在单击按钮时使 ag 网格中的所有单元格可编辑

将值更新到 AG 网格中的服务器

如何在 React AG-grid 中获取固定的行数据

如何在 Angular 项目中自动刷新 ag-grid 中的单元格

如何在 AG Grid Vue 中刷新固定的行数据