Я хотел бы поместить кнопку «Добавить» в свою таблицу. Я использую "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>
);
}
Я пытаюсь перенаправить с кнопки. В настоящее время я пробовал функцию проверки в «OnClick».
моя ошибка: Uncaught Invariant Violation: ожидалось, что слушатель onClick
будет функцией, вместо этого получил значение типа object
.
При условии, что все выше определения createCustomInsertButton
работает так, как вы ожидаете, onClick
ожидает функцию. Вместо этого ваш код вызывает функцию, поэтому всякий раз, когда вызывается createCustomInsertButton
, test
тоже.
Вместо этого передайте функцию onClick
(без скобок):
onClick = {test}
Из документов React:
With JSX you pass a function as the event handler, rather than a string.
Документы по обработке событий React
У меня больше нет ошибок, используя это. Однако мое перенаправление не работает
Не могли бы вы быть более конкретным? Что вы пробовали? Какие сообщения об ошибках вы получаете?
Я изменил «Onclick», и я попытался нажать на кнопку, я не получаю ошибки, но перенаправление не работает
/environnement/add
поддерживается вашим роутером? Что произойдет, если вы посетите его напрямую (введя его прямо в строку браузера и нажав Enter)?
Когда я перехожу по ссылке /environment/add, отображается моя страница
это работает спасибо! я использую <Link> и вставляю <Button>
Использовать
onClick = { () => test() }
или
onClick = { test }
Если у вас есть SPA, вы должны использовать Ссылку из react-router
import { Link } from 'react-router-dom'
<Link to = "/page"> Page </Link>
это работает спасибо! я использую <Link> и вставляю <Button>
Какой у Вас вопрос? Что вы пробовали? Какие сообщения об ошибках вы получаете?