InsertButton Проблема с перенаправлением на другую страницу

Я хотел бы поместить кнопку «Добавить» в свою таблицу. Я использую "insertRow" в BootstrapTable, в otpions я ставлю "insertBtn: createCustomInsertButton" И в функции createCustomInsertButton я настроил свою кнопку, и я хочу, чтобы при нажатии она перенаправляла на другую страницу.

    render() {
        {
            console.info(this.props.store.environnements.length)
        }
        return (
            <div>
                <BootstrapTable selectRow = {selectRow} data = {this.props.store.environnements} options = {options} deleteRow insertRow
                                pagination striped hover condensed>
                    <TableHeaderColumn isKey = {true} dataField = "id" hidden = {true}>ID</TableHeaderColumn>
                    <TableHeaderColumn dataField='nom' filter = {{type: 'TextFilter'}}>Nom</TableHeaderColumn>
                    <TableHeaderColumn dataFormat = {buttonFormatter}>Action</TableHeaderColumn>
                </BootstrapTable>
            </div>
        );
    }

const options = {
    deleteBtn: createCustomDeleteButton,
    insertBtn: createCustomInsertButton
};

function createCustomInsertButton() {
    return (
        <InsertButton
            btnText='Ajouter'
            btnContextual='btn-success'
            className='btn-list btn-success-maif'
            btnGlyphicon='glyphicon-edit'
            onClick = {test()}
       />
    );
}

function test() {
    return (
        <Redirect to='/environnement/add'></Redirect>
    );
}

Какой у Вас вопрос? Что вы пробовали? Какие сообщения об ошибках вы получаете?

Jake Worth 10.04.2019 16:24

Я пытаюсь перенаправить с кнопки. В настоящее время я пробовал функцию проверки в «OnClick».

hulriche 10.04.2019 16:26

моя ошибка: Uncaught Invariant Violation: ожидалось, что слушатель onClick будет функцией, вместо этого получил значение типа object.

hulriche 10.04.2019 16:28
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
3
28
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

При условии, что все выше определения createCustomInsertButton работает так, как вы ожидаете, onClick ожидает функцию. Вместо этого ваш код вызывает функцию, поэтому всякий раз, когда вызывается createCustomInsertButton, test тоже.

Вместо этого передайте функцию onClick (без скобок):

onClick = {test}

Из документов React:

With JSX you pass a function as the event handler, rather than a string.

Документы по обработке событий React

У меня больше нет ошибок, используя это. Однако мое перенаправление не работает

hulriche 10.04.2019 16:33

Не могли бы вы быть более конкретным? Что вы пробовали? Какие сообщения об ошибках вы получаете?

Jake Worth 10.04.2019 16:35

Я изменил «Onclick», и я попытался нажать на кнопку, я не получаю ошибки, но перенаправление не работает

hulriche 10.04.2019 16:36

/environnement/add поддерживается вашим роутером? Что произойдет, если вы посетите его напрямую (введя его прямо в строку браузера и нажав Enter)?

Jake Worth 10.04.2019 16:40

Когда я перехожу по ссылке /environment/add, отображается моя страница

hulriche 10.04.2019 16:47

это работает спасибо! я использую <Link> и вставляю <Button>

hulriche 10.04.2019 16:50
Ответ принят как подходящий

Использовать

 onClick = { () => test() }

или

onClick = { test }

Если у вас есть SPA, вы должны использовать Ссылку из react-router

import { Link } from 'react-router-dom'

<Link to = "/page"> Page </Link>

это работает спасибо! я использую <Link> и вставляю <Button>

hulriche 10.04.2019 16:51

Другие вопросы по теме