React Router и Material-Table - значения столбца фильтра - PullRequest
0 голосов
/ 29 мая 2020

Как я могу передать значения параметров маршрута в поля фильтра таблицы React?

Я использую компонент под названием material-table. Получил набор таких ссылок:

<ul>
  <li>
    <Link to="/Products/Dogs/Foods">Dog Food Products</Link>
  </li>
  <li>
    <Link to="/Services/Cats/Grooming">Cat Grooming Services</Link>
  </li>
</ul>

<Switch>
  <Route exact path="/:business/:category/:product" component={Material_Table}/>
</Switch>

Затем в компоненте Material_Table мне нужно отфильтровать столбцы на основе этих параметров URL. Прямо сейчас просто помещаю их в h4:

<div className="alert">
      <h4>Business: {business}. Category: {category}. Product: {product}.</h4>
    </div>

    <MaterialTable
        title = "Projects"
        icons = {tableIcons}
        columns={[
            {
                title: 'Name',
                field: 'name'
            },
            {
                title: 'Business',
                field: 'values[9]'
            },
            {
                title: 'Category',
                field: 'values[10]'
            },
            {
                title: 'Product',
                field: 'values[8]'
            },
        ]}
        data = {items}
        options ={{
          filtering: true
        }}
        />

Пытался поместить выражения прямо в объект столбцов, но это не сработало. Я знаю, что есть вариант для значения по умолчанию, но это тоже не кажется правильным. Любая помощь очень ценится!

1 Ответ

0 голосов
/ 29 мая 2020

Использование defaultFilter в каждом столбце работает:

<MaterialTable
    title = "Projects"
    icons = {tableIcons}
    columns={[
        {
            title: 'Name',
            field: 'name'
        },
        {
            title: 'Business',
            field: 'values[9]',
            defaultFiler: business
        },
        {
            title: 'Category',
            field: 'values[10]',
            defaultFilter: category
        },
        {
            title: 'Product',
            field: 'values[8]',
            defaultFiler: product
        },
    ]}
    data = {items}
    options ={{
      filtering: true
    }}
    />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...