我可以在 .js 版本的 instantsearch 中的 hierarchicalMenu 上设置 defaultRefinement(不反应)

Can I set defaultRefinement on hierarchicalMenu in the .js version of instantsearch (not react)

我可以看到在反应小部件 hierarchicalMenu 上有一个 defaultRefinement 选项,但我在 .js 文档中找不到它。 .js 中是否有等效项?

如果没有,是否有解决方法?

instantsearch.widgets.hierarchicalMenu({
        container: '#ais-filterCatMenu',
        defaultRefinement: 'Sofa > Sovesofa',
        attributes: [
            'categories.lvl0',
            'categories.lvl1',
        ],
...
}),

使用Instantsearch.js,您可以在初始化搜索客户端时定义initialUiStatehttps://www.algolia.com/doc/api-reference/widgets/instantsearch/js/#widget-param-initialuistate

const search = instantsearch({
  // ...
  initialUiState: {
    indexName: {
      query: 'phone',
      page: 5,
    },
  },
});

我找到了 https://instantsearchjs.netlify.app/stories/?path=/story/refinements-hierarchicalmenu--with-default-selected-item on their github repo here

的来源

例如你可以这样做

const search = instantsearch({
  indexName: 'instant_search',
  searchClient,
  initialUiState: {
    instant_search: { //instant_search is index name
      hierarchicalMenu: {
        'hierarchicalCategories.lvl0': [
          'Cell Phones > Cell Phone Accessories > Car Chargers',
        ],
      },
    },
  },
});

search.addWidgets([
  instantsearch.widgets.hierarchicalMenu({
    container: '#hierarchical-menu',
    attributes: [
      'hierarchicalCategories.lvl0',
      'hierarchicalCategories.lvl1',
      'hierarchicalCategories.lvl2',
      'hierarchicalCategories.lvl3',
    ],
  }),
]);

最终会变成这样。 codesandbox demo