मैं 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
अगर मैं उपसर्ग को बाहर निकालता हूँ !:
import suburbs from '../suburbs.json';
इस तरह मुझे संकलन के समय त्रुटियां नहीं हुईं (आयात किया गया)। हालाँकि, जब मुझे इसे निष्पादित करने में त्रुटियाँ मिलीं:
Uncaught TypeError: _jsonfilesSuburbsJson2.default.filter is not a function
यदि मैं इसे डिबग करता हूं तो मैं देख सकता हूं कि उपनगर एक ऑब्जेक्ट है, न कि एक सरणी इसलिए फ़िल्टर फ़ंक्शन को परिभाषित नहीं किया गया है।
हालाँकि उदाहरण में टिप्पणी की गई है सुझाव एक सरणी है। अगर मैं इस तरह के सुझावों को फिर से लिखता हूं, तो सब कुछ काम करता है:
const suggestions = suburbs
var suggestions = [ {
'suburb': 'Abbeyard',
'postcode': '3737'
}, {
'suburb': 'Abbotsford',
'postcode': '3067'
}, {
'suburb': 'Aberfeldie',
'postcode': '3040'
} ].filter(suburbObj => suburbMatchRegex.test(suburbObj.suburb))
तो ... क्या जोसन! आयात में उपसर्ग कर रहा है?
मैं इसे अपने कोड में क्यों नहीं डाल सकता? कुछ कोलाहल विन्यास?