https://github.com/moroshko/react-autosuggestから例を実装してい ます
重要なコードは次のとおりです。
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);
}
この例のコピーアンドペーストコード(機能します)には、私のプロジェクトでエラーがあります:
Error: Cannot resolve module 'json' in /home/juanda/redux-pruebas/components
接頭辞jsonを削除すると!:
import suburbs from '../suburbs.json';
このようにして、コンパイル時にエラーが発生しませんでした(インポートが実行されます)。ただし、実行するとエラーが発生しました。
Uncaught TypeError: _jsonfilesSuburbsJson2.default.filter is not a function
デバッグすると、郊外は配列ではなくObjectcであることがわかります。そのため、フィルター関数は定義されていません。
ただし、この例ではコメント付きの提案は配列です。このような提案を書き直すと、すべてが機能します。
const suggestions = suburbs
var suggestions = [ {
'suburb': 'Abbeyard',
'postcode': '3737'
}, {
'suburb': 'Abbotsford',
'postcode': '3067'
}, {
'suburb': 'Aberfeldie',
'postcode': '3040'
} ].filter(suburbObj => suburbMatchRegex.test(suburbObj.suburb))
だから...なんてjson!プレフィックスはインポートで実行されていますか?
コードに入れられないのはなぜですか?いくつかのbabel構成?