gpt4 book ai didi

javascript - React Algolia 即时搜索 connectSearchBox

转载 作者:行者123 更新时间:2023-11-29 19:06:13 24 4
gpt4 key购买 nike

我正在使用 Algolia React InstantSearch 和 connectSearchBox 来创建自定义输入。我目前这样做的方式如下:

const MySearchBox = connectSearchBox(({currentRefinement, refine}) => {
return (
<input
type="text"
placeholder="Search"
value={currentRefinement}
onFocus={()=> props.onFocus()}
onBlur={()=> props.onBlur()}
onChange={(e) => {refine(e.target.value)}}
/>
);
});



然后用下面的代码来实例化:

<InstantSearch
onSearchStateChange={(result) => this.onSearchChange(result)}
appId={appId}
apiKey={apiKey}
indexName={index}>
<MySearchBox/>
</InstantSearch>

这非常有效。但是,我想做的是能够将 Prop 传递给 MySearchBox。所以我做了这样的事情:

const MySearchBox = (props) => {
connectSearchBox(({currentRefinement, refine}) => {
return (
<input
type="text"
....
/>
);
})
}

或者这个:

const MySearchBox = React.createClass({
render() {
return (
connectSearchBox(({currentRefinement, refine}) => {
return (
<input
type="text"
/>
);
})
)
}
});

但是,运行这段代码时,出现以下错误:

MYSEARCHBOX(...): A VALID REACT ELEMENT (OR NULL) MUST BE RETURNED. YOU MAY HAVE RETURNED UNDEFINED, AN ARRAY OR SOME OTHER INVALID OBJECT.

最后,我有什么方法可以将 props 传递给 MySearchBox?

最佳答案

您可以简单地将 Prop 传递给您的自定义搜索框并像这样检索它们:

自定义搜索框:

const MySearchBox = connectSearchBox(({ onFocus, onBlur, currentRefinement, refine }) => {
return (
<input
type="text"
placeholder="Search"
value={currentRefinement}
onFocus={() => onFocus()}
onBlur={() => onBlur()}
onChange={e => {
refine(e.target.value);
}}
/>
);
});

用法:

<MySearchBox onFocus={} onBlur={} />

此外,我们现在正在转发 on*事件传递给 <SearchBox>小部件。

关于javascript - React Algolia 即时搜索 connectSearchBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42613967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com