Saya menerapkan contoh dari https://github.com/moroshko/react-autosuggest
Kode penting seperti ini:
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);
}
Kode salin-tempel ini dari contoh (yang berfungsi), memiliki kesalahan dalam proyek saya:
Error: Cannot resolve module 'json' in /home/juanda/redux-pruebas/components
Jika saya mengambil awalan json !:
import suburbs from '../suburbs.json';
Dengan cara ini saya tidak mendapatkan kesalahan pada waktu kompilasi (impor selesai). Namun saya mendapat kesalahan saat menjalankannya:
Uncaught TypeError: _jsonfilesSuburbsJson2.default.filter is not a function
Jika saya men-debugnya, saya bisa melihat pinggiran kota adalah objectc, bukan array sehingga fungsi filter tidak ditentukan.
Namun dalam contoh, saran yang dikomentari adalah larik. Jika saya menulis ulang saran seperti ini, semuanya berfungsi:
const suggestions = suburbs
var suggestions = [ {
'suburb': 'Abbeyard',
'postcode': '3737'
}, {
'suburb': 'Abbotsford',
'postcode': '3067'
}, {
'suburb': 'Aberfeldie',
'postcode': '3040'
} ].filter(suburbObj => suburbMatchRegex.test(suburbObj.suburb))
Jadi ... apa json! awalan lakukan di impor?
Mengapa saya tidak dapat memasukkannya ke dalam kode saya? Beberapa konfigurasi babel?