使用Algolia React Instantsearch显示网格结果

时间:2017-06-23 11:27:29

标签: reactjs algolia react-instantsearch

我有一个这个InstantSearch的工作演示,但我找不到将结果显示为网格而不是列表的方式。

 <InstantSearch
                appId="xxxxx"
                apiKey="xxxxxx"
                indexName="xxxx"
            >
            <SearchBox />
            <div>
              <Hits hitComponent={Product} />
            </div>
   </InstantSearch>

产品是带有结果信息的卡片。我似乎能够访问结果列表的唯一方法是使用Hits,但这不允许我创建网格。

欢迎任何帮助。

2 个答案:

答案 0 :(得分:3)

您可以使用connectHits连接器来使用您自己的标记。

连接器是高阶组件。

这是一个小例子:

const Hits = connectHits(({hits}) => {
    const items = hits.map(hit => <div>{hit.name}</div>);
    return <Grid><items></Grid>
});

有关此处连接器的更多信息:https://community.algolia.com/react-instantsearch/guide/Connectors.html

答案 1 :(得分:2)

感谢@Marie

这就是我完成它的方式,并且有效。

import React from 'react';

//Import Components
import {connectHits} from 'react-instantsearch/connectors';
import Product from './Product'

const MyHits = (props)  => {
    const items = props.hits.map(hit => <Product hit={hit} />);
    return (
        <div>
            <div className="my-grid mdc-layout-grid">
                <div className="mdc-layout-grid__inner">
                    {items}
                </div>
            </div>
        </div>
    );
}


export default connectHits(MyHits);