history.back(), похоже, не ждет клика, несмотря на обработчик React onClick

Я пытаюсь сделать ссылку для кнопки возврата с помощью <a href='#' onClick={history.back()} > для определенного представления, которое я визуализирую с помощью React и Meteor. моя цель - позволить пользователю вернуться на предыдущую страницу без необходимости передавать параметры и не заставлять пользователя использовать кнопку возврата браузера.

Проблема: при запуске этого кода представление с кнопкой «Назад» даже не отображается, и history.back(), похоже, запускается автоматически вместо ожидания запуска события onClick (пользователь нажимает кнопку)

import React from 'react';

const UnitButtonComponent = () => {
    return (
    <div>
        <a href='#' onClick={history.back()} >
            <button type='button' name='go back' />
        </a>
    </div>
    )
};

export default UnitButtonComponent;

Я также использую Flowrouter в качестве маршрутизатора.


person danlee2    schedule 29.11.2016    source источник


Ответы (2)


Проблема в () после history.back. Материал внутри {} оценивается при вызове метода рендеринга.

Если вы удалите (), вы назначите функцию history.back свойству onClick, и она будет работать так, как вы ожидаете.

person Joshua Engel    schedule 29.11.2016

Вы выполняете метод немедленно

Сделайте это вместо этого:

<a href='#' onClick={() => history.back()} >
person tomr    schedule 03.07.2017