Я тестирую очень простую реализацию реактивного поиска .
Мой код такой: импортировать React, {Component} из'act ';импортировать {ReactiveBase, DataSearch, ResultCard} из '@ appbaseio / реактивный поиск';импортировать логотип из ./logo.svg;import './App.css';
class App extends Component {
render() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h1 className="App-title">Welcome to React</h1>
</header>
<ReactiveBase
app="indexName"
url="https://someurl.amazonaws.com"
>
<DataSearch
componentId="SearchSensor"
dataField={ "field_product:title" }
autoSuggest={true}
/>
<ResultCard
componentId="results"
dataField="field_product"
react={{
"and": ["SearchSensor"]
}}
onData={(res)=>({
"image": res.image,
"title": res.field_product:title,
"description": res.description
})}
/>
</ReactiveBase>
</div>
);
}
}
export default App;
Мои поля в индексе выглядят примерно так:
{
"_index": "kirana11",
"_type": "product_autocomplete",
"_id": "66641",
"_version": 1,
"_score": 1,
"_source": {
"id": 66641,
"description": "Some Nestle Product ",
"field_product:title": "Nestle Product",
"field_product:commerce_price:amount": 83
}
В приведенном выше примере, когда я вызываю такие поля, как res.image
itработает без нареканийОднако такие поля, как field_product:title
& field_product:commerce_price:amount
, возвращают ошибку, как показано ниже:
Синтаксическая ошибка: ожидается неожиданный токен (34:41)
Что такоеправильный способ доступа к полям с двоеточием в нем?Есть ли способ избежать этого?