मैं https://github.com/moroshko/react-autosuggestES6 मॉड्यूल कार्यान्वयन, एक json फ़ाइल
महत्वपूर्ण कोड से एक उदाहरण को लागू कर रहा हूँ लोड करने के लिए कैसे इस तरह है:
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
अगर मैं preffix 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))
तो ... क्या जेसन! आयात में उपसर्ग कर रहा है?
मैं इसे अपने कोड में क्यों नहीं डाल सकता? कुछ बेबेल विन्यास?
बहुत बहुत शुक्रिया! जेसन-लोडर के लिए प्रलेखन वास्तव में वेबपैक v2 के लिए सेटिंग्स दिखा रहा था, इसलिए मेरे लिए कुछ भी काम नहीं किया (v1 का उपयोग करके!)। तो आप सभी के लिए, लोडर का उपयोग करें, नियम नहीं! इसके अलावा, उस ऑब्जेक्ट के अंदर 'उपयोग' को 'लोडर' के रूप में बदलें, बस इस जवाब की तरह! – nbkhope
जैसा कि @ एलेक्सेंडर-टी का उल्लेख है, अब आप जेसन-लोडर के बिना जेसन फाइल आयात कर सकते हैं, लेकिन, यदि आप किसी समस्या में भाग लेते हैं जहां जेसन-लोडर पहचाना नहीं गया है, तो आपको लोडर में '-लोडर' प्रत्यय जोड़ना चाहिए इस तरह कॉन्फ़िगर करें: '{test: /\.json$/, लोडर: 'जेसन-लोडर'}' – cvetanov
आयातित जेसन को क्यों कॉपी नहीं किया जाता है अगर इसे टाइपस्क्रिप्ट के माध्यम से आयात किया जा रहा है? – FrankerZ