InsertButton Проблема перенаправления на другую страницу - PullRequest
0 голосов
/ 10 апреля 2019

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

    render() {
        {
            console.log(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>
    );
}

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Используйте

 onClick = { () => test() }

или

onClick = { test }

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

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

<Link to="/page"> Page </Link>
1 голос
/ 10 апреля 2019

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

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

onClick={test}

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

В JSX вы передаете функцию в качестве обработчика событий, а не строку.

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

...