Ich implementiere ein Beispiel von https://github.com/moroshko/react-autosuggest
Wichtiger Code ist wie folgt:
import React, { Component } from 'react';
import suburbs from 'json!../suburbs.json';
function getSuggestions(input, callback) {
const suggestions = suburbs
.filter(suburbObj => suburbMatchRegex.test(suburbObj.suburb))
.sort((suburbObj1, suburbObj2) =>
suburbObj1.suburb.toLowerCase().indexOf(lowercasedInput) -
suburbObj2.suburb.toLowerCase().indexOf(lowercasedInput)
)
.slice(0, 7)
.map(suburbObj => suburbObj.suburb);
// 'suggestions' will be an array of strings, e.g.:
// ['Mentone', 'Mill Park', 'Mordialloc']
setTimeout(() => callback(null, suggestions), 300);
}
Dieser Code zum Kopieren und Einfügen aus dem Beispiel (der funktioniert) hat einen Fehler in meinem Projekt:
Error: Cannot resolve module 'json' in /home/juanda/redux-pruebas/components
Wenn ich das Präfix json herausnehme!:
import suburbs from '../suburbs.json';
Auf diese Weise habe ich beim Kompilieren keine Fehler erhalten (der Import ist abgeschlossen). Bei der Ausführung sind jedoch Fehler aufgetreten:
Uncaught TypeError: _jsonfilesSuburbsJson2.default.filter is not a function
Wenn ich es debugge, sehe ich, dass Vororte ein Objektc und kein Array sind, sodass die Filterfunktion nicht definiert ist.
Im Beispiel wird jedoch kommentiert, dass Vorschläge ein Array sind. Wenn ich solche Vorschläge umschreibe, funktioniert alles:
const suggestions = suburbs
var suggestions = [ {
'suburb': 'Abbeyard',
'postcode': '3737'
}, {
'suburb': 'Abbotsford',
'postcode': '3067'
}, {
'suburb': 'Aberfeldie',
'postcode': '3040'
} ].filter(suburbObj => suburbMatchRegex.test(suburbObj.suburb))
Also ... was für ein Json! Präfix macht im Import?
Warum kann ich es nicht in meinen Code einfügen? Eine Babel-Konfiguration?