appbaseio / appbaseio/reactivecore
autosuggest fails on null values
- 主要语言
- JavaScript
- 星标
- 33
- 派生
- 27
- PR 合并指标
- 30 天内没有已合并 PR
描述
We are utilizing `reactivesearch` to query some Elastic data. We are utilizing the `showMissing` prop option on several filters that are using `MultiList`. Our understanding is that missing/null data is necessary for `showMissing` to function and this is all working.
There is also a `DataSearch`. Today, I was asked to connect the `DataSearch` to more `dataFields` and some of those fields are null for some records. For the `showMissing` to function, I can't (as far as I know) avoid having these `null` values. When I added the additional fields to the `DataSearch`'s `dataFields`, the app would crash as soon as I typed anything into the input.
Stack trace showed it was crashing at the `str.replace` in `replaceDiacritics` (in suggestions.js) because `str` had a value of `null`:
```javascript
function replaceDiacritics(s) {
let str = s ? String(s) : s;
const diacritics = [
/[\300-\306]/g, /[\340-\346]/g, // A, a
/[\310-\313]/g, /[\350-\353]/g, // E, e
/[\314-\317]/g, /[\354-\357]/g, // I, i
/[\322-\330]/g, /[\362-\370]/g, // O, o
/[\331-\334]/g, /[\371-\374]/g, // U, u
/[\321]/g, /[\361]/g, // N, n
/[\307]/g, /[\347]/g, // C, c
];
const chars = ['A', 'a', 'E', 'e', 'I', 'i', 'O', 'o', 'U', 'u', 'N', 'n', 'C', 'c'];
for (let i = 0; i < diacritics.length; i += 1) {
str = str.replace(diacritics[i], chars[i]); // crash here
}
return str;
}
```
I won't say this is the best fix, but I put a band-aid on the issue by changing
```javascript
const populateSuggestionsList = (val, parsedSource, source) => {
// check if the suggestion includes the current value
// and not already included in other suggestions
const isWordMatch = skipWordMatch || currentValue
.....
```
into
```javascript
const populateSuggestionsList = (val, parsedSource, source) => {
// check if the suggestion includes the current value
// and not already included in other suggestions
val = val ? val : ''; // new
const isWordMatch = skipWordMatch || currentValue
.....
```
There may be reasons I'm not aware of that you wouldn't want to support the possibility of autosuggest encountering `null` values, but I thought I would open the issue to inquire if this was the intended behavior.
贡献指南
这个仓库没有索引到贡献指南
评估
这个 Issue 还没有评估数据。