Props undefined react

С таблицы, реализованной с материалом - table у него есть соединение, которое ведет в другую страницу, чтобы издавать отборную линию.

Проблема состоит в том, что он приводит меня в страницу с пустым формуляром, и появляется l следующая легенда

GET http://localhost:xxxx/api/Articulos/undefined 500 (Интерналь Сервер Ошибка)

Таблица

 <Router>
  <MaterialTable
  title="Articulos"
  columns={[
    {title:'Id', field:'Id',type: 'numeric' ,hidden:'false'},
    {title: 'articulo',field: 'articulo'},
    {title: 'descripcion', field: 'descripcion'},
    {title: 'precio',field:'precio',type: 'numeric'},
  ]} 
  data={articulos.Data}
  actions={[
    rowData=>({    
      icon:()=><Link to={`/Articulo/edit/${rowData.Id}`}><EditIcon/></Link>
    })
  ]}
  />
  </Router>

Компонент

function EditarArticulo(props) {

    const [articulos, setArticulos]=useState({articulo: '',descripcion:'', precio:0})

    useEffect(function() {
        async function getArticulos() {
          try {
            const response = await  axios.get(`/api/Articulos/${props.match.params.Id}`);
            setArticulos(response.data);        
          } catch(error) {
            console.log(error);
          }
        }
        getArticulos();    
      }, [props]);

Маршрут

    <Switch>          
      <Route exact path="/Articulo/edit/:Id" component = 
        {EditarArticulo}/>
    </Switch>  
0
задан 23.12.2019, 17:31
1 ответ

Проверяя ее documentaciГіn чиновник react-table, я нашел, что способ, в котором estГЎs помогая mГ©todo он не похож много. Проверь https://material-table.com/#/docs/features/actions

Предлагают следующую схему использования:

<MaterialTable
  // other props
  actions={[
    {
      icon: 'save',
      tooltip: 'Save User',
      onClick: (event, rowData) => {
        // Do save operation
      }
    }
  ]}
/>

, Где rowData содержит ее informaciГіn ячеек линии, на которой кликнули.

Для случая, который ты используешь, serГ - во что-то похожее на пример, который я показываю тебе в continuaciГіn.

<Router>
  <MaterialTable
  title="Articulos"
  columns={[
    {title:'Id', field:'Id',type: 'numeric' ,hidden:'false'},
    {title: 'articulo',field: 'articulo'},
    {title: 'descripcion', field: 'descripcion'},
    {title: 'precio',field:'precio',type: 'numeric'},
  ]} 
  data={articulos.Data}
  actions={[
      icon: "iconname",
      onClick: (event, rowData) => <Link to={`/Articulo/edit/${rowData.Id}`}><EditIcon/></Link>
  ]}
  />
  </Router>

Надеялся, что он подает тебя, привет!

0
ответ дан 23.12.2019, 22:06
  • 1
    Я попробовал это помочь таким образом, но не функционирует соединение, и даже не показывает мне формуляр – senseilex 23.12.2019, 18:34
  • 2
    Остается завертывать í tems array между { }, происходят с собой, prué я блею и ты говоришь мне пожалуйста – Adolfo Onrubia 23.12.2019, 18:49
  • 3
    Если я это сделал, потому что, если не выходит ошибка синтаксиса, меня так остается actions={[{ icon: 'edit', tooltip: 'Edit', onClick:(event,rowData)=><Link to={/, соединил / edit / $ { rowData. Пойдите } }><EditIcon /></Link> } ]} – senseilex 23.12.2019, 19:23
  • 4
    ¿ Ты можешь делать log rowData и подтверждать, что у него есть поле Id, которое ты ждешь? – Adolfo Onrubia 23.12.2019, 19:26
  • 5
    По какому-то разуму, если я помещаю один console.log, у меня выходит ошибка expected " " – senseilex 23.12.2019, 21:04

Теги

Похожие вопросы