Недвижимость не определена - PullRequest
0 голосов
/ 25 июня 2019

Мне возвращается эта ошибка из консоли:

index.js:70 Uncaught TypeError: Cannot read property 'searchForm' of undefined
    at eval (index.js:70)
    at Module../src/js/index.js (bundle.js:4245)
    at __webpack_require__ (bundle.js:20)
    at eval (webpack:///multi_(:8080/webpack)-dev-server/client?:3:18)
    at Object.0 (bundle.js:4292)
    at __webpack_require__ (bundle.js:20)
    at bundle.js:84
    at bundle.js:87
(anonymous) @ index.js:70
./src/js/index.js @ bundle.js:4245
__webpack_require__ @ bundle.js:20
(anonymous) @ client:3
0 @ bundle.js:4292
__webpack_require__ @ bundle.js:20
(anonymous) @ bundle.js:84
(anonymous) @ bundle.js:87
mixpanel-2-latest.min.js:88 document not ready yet, trying again in 500 milliseconds...
client:52 [WDS] Live Reloading enabled.
client:126 [WDS] Warnings while compiling.
warnings @ client:126
(anonymous) @ socket.js:47
sock.onmessage @ SockJSClient.js:58
EventTarget.dispatchEvent @ sockjs.js:170
(anonymous) @ sockjs.js:887
SockJS._transportMessage @ sockjs.js:885
EventEmitter.emit @ sockjs.js:86
WebSocketTransport.ws.onmessage @ sockjs.js:2961
client:135 ./src/js/views/searchView.js 6:9-17
"export 'elements' was not found in './base'
warnings @ client:135
(anonymous) @ socket.js:47
sock.onmessage @ SockJSClient.js:58
EventTarget.dispatchEvent @ sockjs.js:170
(anonymous) @ sockjs.js:887
SockJS._transportMessage @ sockjs.js:885
EventEmitter.emit @ sockjs.js:86
WebSocketTransport.ws.onmessage @ sockjs.js:2961
client:135 ./src/js/index.js 66:0-8
"export 'elements' was not found in './views/base'

И я отслеживаю ошибку в преобразовании ES6 -> ES5 с помощью Babel:

_views_base__WEBPACK_IMPORTED_MODULE_2__["elements"].searchForm.addEventListener('submit', function (e) {

Index.js:

// always make sure you have the right directory 

// import field 
import Search from './models/Search'; 
// import all the function from the view 
import * as searchView from './views/searchView'
import {elements} from './views/base'; 

/* Global state of the app
    - Search obj 
    - current recipe obj
    - shopping list object
    - liked recipes
*/

// everytime we reload the app, it will be empty 
const state = {}
const controlSearch = async () =>{
    // 1) Get the query from the view 
    const query =  searchView.getInput;
    console.log(query);

    if(query){
        // 2) new search object and add it to state 
        state.search = new Search(query); // new instance of the search class 

        // 3) prepare UI for results 

        // 4) Search for recipes 
        await state.search.getResults();

        // 5) render result in the UI, reminder u got hit the search button 
        console.log(state.search.result);

    }
}
elements.searchForm.addEventListener('submit', e =>{
    e.preventDefault();
    controlSearch();
})

const search =  new Search('pizza');
console.log(search); 
search.getResults();

searchView.js:

// if we are in the current folder then it is simply base 
import {elements} from './base'; 
// return the input value from the field 
// implicit search 
export const getInput =() => elements.searchInput.value; 

base.js:

// all the DOM element will be in this class 
export const element = {
    searchForm: document.querySelector('.search'),
    searchInput: document.querySelector('.search__field')
}

Отслеживая ошибку, я думаю, что все определяется, и яне вижу, как эта ошибка может произойти.Я новичок в веб-разработке, надеюсь, это не плохой вопрос.Мне действительно нужен более опытный ум, чтобы посмотреть на ошибку.Большое спасибо.

1 Ответ

1 голос
/ 25 июня 2019

В вашем base.js .... вы экспортируете элемент

export const element

, где, как в вашем index.js ... вы импортируете элементы

import {elements} from './views/base'; 

Изменить 'элементы "в" элемент "или вице-cersa

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...