Делать функцию, которую делал бы request api, чтобы удалять сохраняемого

Мне хотелось бы знать как делать, чтобы делать функционально, мы сказали эту кнопку, я создал таблицу с репетитором, который показывает мне все категории, которые возвращает api в json, но в каждый у меня есть выбор удалять, чтобы удалять эту категорию, как я могу делать в react, что из-за ej с каким-то onClick или призывать что-либо подобное к функции и посылать ему имя этой категории и потом что функция сделала fetch в мой API?

{this.state.items.length ?
        this.state.items.map(item=>

  <tr>
    <td>{item.name}</td>
    <td><a href="#"><b>Edit</b></a> | <a className="red" href="#">Delete</a></td>
  </tr>
2
задан 13.01.2017, 22:26
0 ответов

Ты можешь переходить с ним прямо в метод, ответственный удалять категорию id той же самой:

<button onClick={() => this.removeCategory(categoria.id)}>Eliminar</button>

Также ты можешь делать это так:

<button onClick={this.removeCategory.bind(this, categoria.id)}>Eliminar</button>

И когда кликнут в кнопке, проходит свойство id с категории до метода и сюда послана API для Вашего уничтожения:

removeCategory (id) {
  fetch (`http://localhost:3000/api/categorias/${id}`, {
    method: 'DELETE'
  })
  .then(res => res.json())
  .then(res => {
    if (res.success) {
      let categories = this.state.categories.filter(c => c.id !== id);
      this.setState({ categories });
      alert('Categoría eliminada');
    }
  });
}

После удаляя категорию базы данных, нам остается удалять ее из таблицы. Для ésto ты можешь выдавать категории, которые у тебя есть в state таким образом что ты только получаешь категории которых пойдите, он отличается в id удаленной категории:

let categories = this.state.categories.filter(c => c.id !== id);
this.setState({ categories });

То, что он переместит, состоит в том, что re-renderizará таблица и уже не появится удаленный реестр.

1
ответ дан 03.12.2019, 17:41
  • 1
    Большое спасибо функционируй совершенно, но то, что мне не удалось заставить проходить, так это часть, которой re-renderiza таблица, у категории нет, пойдите он по имени и единственная информация, которая у меня есть, - item.nombre, не, если он будет состоять в том, чтобы он это не приспособил хорошо к моему коду, но хорошо, ты мог бы говорить мне, как это было бы, чтобы это делать в моем случае это? –  15.01.2017, 00:46
  • 2
    ¿ Ты говоришь о другом вопросе? В моменте я обновляю мой ответ. –  15.01.2017, 00:48
  • 3
    Не не, я говорю последнее, что состоит в том, чтобы обновлять таблицу, чтобы удалять категорию, которую он удаляет –  15.01.2017, 00:49
  • 4
    Ты используешь что-то categories, но в моем случае он не categories, чтобы получать имя категории, я использую item.name, и кроме того ты это делаешь с нею пойдите и я одинокий с именем, я смог заставлять функционировать первое но часть, которая готова внутри, if обновлять таблицу не. –  15.01.2017, 00:50
  • 5
    В моем примере, categories заканчивает тем, что является array данных, который может быть любым именем, как items. É ste array данных, тот же самый, что ты повторяешь, чтобы показывать линии в таблице, ты можешь выдавать это, чтобы получать статьи, у которых нет поля в comú n с удаленным . Например, ты говоришь, что в твоем случае он по имени, тогда только podrí схвати делать: let items = this.state.items.filter(item => item.name !== name); и ты ведешь себя в acualizar состояние с новым выданным array. Así сам, вместо this.removeCategory.bind(this, categoria.id) pasarí схвати categoria.name. –  15.01.2017, 00:54