Почему в этом случае не работает ax ios с async / await? - PullRequest
0 голосов
/ 25 апреля 2020

Я хочу изменить DoorState при нажатии кнопки.

После публикации API для изменения DoorState, вызовите get API для проверки состояния робота.

На самом деле DoorState изменилось. Но не меняйте код console.log(after). Почему?

{
    deliveryPost.Delivery.status === 'assigned' &&
        (checkDoorState(deliveryPost.Delivery.postId) === 'closed' ? ( <
            >
            <
            button className = "bg-white text-teal-500 py-2 px-4 ml-2 border border-teal-500 rounded hover:bg-teal-500 hover:text-white"
            onClick = {
                () => clickRobotAction(deliveryPost.Delivery.postId, 'open')
            } >
            Open Door <
            /button> <
            />
        ) : ( <
            >
            <
            button className = "bg-white text-teal-500 py-2 px-4 ml-2 border border-teal-500 rounded hover:bg-teal-500 hover:text-white"
            onClick = {
                () => clickRobotAction(deliveryPost.Delivery.postId, 'close')
            } >
            Close Door <
            /button> <
            />
        ))
}
``
`

`
``
const clickRobotAction = async (postId: string, action: string) => {
    const appliedRobot = robots.find(robot => robot.postId === postId);
    const {
        robotId
    } = appliedRobot;

    try {
        await axios.post(`api/${robotId}/action/${action}`); // DoorState open <=> close
        const after = await axios.get('api/robots');

        console.log(after); // But not change in this log. Why?
    } catch (error) {
        console.error(error);
    }
};

1 Ответ

0 голосов
/ 25 апреля 2020

Я не уверен, но я думаю, что это потому, что запрос ax ios .post должен быть ax ios .get, так как вы не добавляете второй параметр перегрузки для объекта. Так как вы просто отправляете строку запроса, то я думаю, что это просто запрос на получение, который не уверен, хотя я надеюсь, что это поможет.

...