Я хочу отобразить информацию о том, что пользователь нажимает на ResultCard.
Я хочу заменить содержимое divs (отображаемые в данный момент результаты) на отображаемый html на основе результата, найденного в моем кластере эластичного поиска (res), когда пользователь щелкнет URL-адрес в карточке результатов.
Я пытался добавить свойства onclick, но ничего не происходит. Документация Reactivesearch не содержит этот атрибут.
Конечно, я мог бы передать аргумент в свойствах url ResultCard и перенаправить пользователя на другую страницу, но страница была бы полностью перезагружена (с меню, определенным в index.js и нижнем колонтитуле)
Я думаю, что создание родительского компонента с отражением состояния отображаемого в данный момент дочернего компонента в div - это путь.
Но как запустить javascript для установки состояния, когда пользователь щелкает карту результатов?
import React, { Component } from 'react';
import { ReactiveBase, CategorySearch, SingleRange, ResultCard } from '@appbaseio/reactivesearch';
class App extends Component {
render() {
return (
<ReactiveBase
app="artists"
url="https://admin:xxxxxxx@node1.searchevolution.com:9200"
type="_doc">
<div style={{ display: "flex", "flexDirection": "row" }}>
<div style={{ display: "flex", "flexDirection": "column", "width": "40%" }}>
<CategorySearch
componentId="searchbox"
dataField="nom"
categoryField="occupations.keyword"
type="artists"
placeholder="Search for Artists, Painter, Sculptor, Photographs"
style={{
padding: "5px",
"marginTop": "10px"
}}
/>
</div>
<ResultCard
componentId="result"
dataField="nom"
title="Results"
from={0}
size={6}
pagination={true}
onclick="alert('Message à afficher');"
react={{
and: ["searchbox"]
}}
onData={(res) => {
return {
image: "data:image/png;base64,iVBORw0KGgoA",
title: res.occupations,
description: res.nom,
url: "/details/" + res
}
}}
style={{
"width": "60%",
"textAlign": "center"
}}
/>
</div>
</ReactiveBase>
);
}
}
export default App;
Ожидаемый результат - изменение содержимого div с отображаемым html из другого компонента (еще не закодированного).