首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在材料表组件中动态添加查找特性的信息

在材料表组件中动态添加查找特性的信息
EN

Stack Overflow用户
提问于 2019-04-11 23:32:44
回答 3查看 11.5K关注 0票数 8

我正在尝试动态添加数据到Material-Table组件中的查找属性,我看到了问题。

查找是一个对象,它的定义可以在第一个示例https://mbrn.github.io/material-table/#/docz-examples-06-example-filtering中找到

但是,如果您尝试在外部创建该对象,然后将其分配给查找,您将得到一个错误。

那么,有没有办法给这个查找属性分配一个对象数组呢?

提前感谢您的时间,任何指导将不胜感激。

诚挚的问候

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-12 01:16:40

我找到了使用Reduce的方法,它完美地工作了:假设你有这个对象数组:

代码语言:javascript
复制
  const dinamicObject = [
  { id: 4, name: "name" },
  { id: 2, name: "Mehmet" },
  { id: 3, name: "middle" }
  ];

  var obj = dinamicObject.reduce(function(acc, cur, i) {
  acc[cur.id] = cur.name;
  return acc;
  }, {});

然后将其分配给Material-Table component中的查找属性

请查看此处了解更多说明https://codesandbox.io/s/vq2lj0krkl

我希望这对其他人有帮助。

诚挚的问候

票数 11
EN

Stack Overflow用户

发布于 2019-04-11 23:45:59

在表外创建一个对象。

代码语言:javascript
复制
import React from "react";
import ReactDOM from "react-dom";
import MaterialTable from "material-table";
import FilterList from "@material-ui/icons/FilterList";
import Clear from "@material-ui/icons/Clear";
import "./styles.css";

function App() {

  const dynamicLookupObject = { 34: "test1", 63: "test2" }

  // TODO: const createDynamicObject = () => {
       // change object
       // return dynamicLookupObject
     })

  return (
    <div className="App">
      <MaterialTable
        icons={{
          Filter: () => <FilterList />,
          ResetSearch: () => <Clear />
        }}
        columns={[
          { title: "Name", field: "name", defaultFilter: "Meh" },
          { title: "Surname", field: "surname" },
          { title: "Birth Year", field: "birthYear", type: "numeric" },
          {
            title: "Birth Place",
            field: "birthCity",
            lookup: dynamicLookupObject,
            defaultFilter: ["63"], // For numeric,
            emptyValue: () => <div>"dfsdf"</div>
          }
        ]}
        data={[
          { name: "Mehmet", surname: "Baran", birthYear: null, birthCity: 63 },
          {
            name: "Zerya Betül",
            surname: "Baran",
            birthYear: 2017,
            birthCity: 34
          }
        ]}
        title="Filtering Example"
        options={{
          filtering: true,
          maxBodyHeight: 300,
          rowStyle: data =>
            data.surname === "Baran"
              ? { background: "red" }
              : { background: "green" }
        }}
      />
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
票数 3
EN

Stack Overflow用户

发布于 2020-03-20 18:45:21

代码语言:javascript
复制
// Suppose you have the following array object from an end point:

const clients = [
    { id: 1, clientname: 'rohit', email: 'rohit@example.com'},
    { id: 2, clientname: 'mohan', email: 'mohan.kumar@example.com'}
]
// Now let us convert it to JavaScript Object with key and value pairs:

const clientOptions = {};
clients.map(client => {
    const { id, email } = client;
    clientOptions[ clientid ] = email
})
// Now look at the output by console.log(clientOptions) , we will get the following output:
// Output:
{ 1 : rohit@example.com, 2 : mohan.kumar@example.com }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55636204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档