Как я могу вернуть результат запроса PUT без обновления приложения? - PullRequest
0 голосов
/ 08 февраля 2020

Я сделал запрос PUT, который переключает изображение, но чтобы увидеть результат, я должен обновить sh приложение. Как я могу сделать это без обновления?

Код:

const Islbutton = props => {
  const [islIsOn, setIslIsOn] = useState(props.IslIsOn);

  const changeButtonStateIsl = () => {
    if (checkRole(role)) {
      axios
        .put("http://localhost:5000/api/bns/" + bnsName, {
          headers: {
            Accept: "application/json",
            "Content-Type": "application/json"
          },
          islIsOn: !islIsOn
        })

        .then(response => {
          console.log(response);
        })

        .catch(error => {
          console.log(error);
        })
        .finally(); // I assume it has to be here?
    }
  };

  return (
    <div>
      <img
        src={islIsOn ? islon : isloff}
        onClick={() => changeButtonStateIsl()}
      />
    </div>
  );
};

Если бы это было SQL, я бы просто сделал что-то вроде: Select *, Где IslIsOn = value;

1 Ответ

1 голос
/ 09 февраля 2020

Похоже, вам просто нужно изменить свое состояние, чтобы вызвать повторную визуализацию.

.then(response => {
    // Set the state to true or false based on your response
    ...
    setIslIsOn(true);
 })

Если вы хотите вызвать изменение, даже если вы получаете ошибку из вашего PUT, вы должны установить вместо этого состояние в разделе «наконец».

...