繁体   English   中英

JavaScript函数导入无法正常工作

[英]JavaScript function importing doesn't work properly

我指的是下面的代码。 https://github.com/jonasschmedtmann/complete-javascript-course/blob/master/9-forkify/final/src/js/views/searchView.js

我制作了一个函数,并尝试将该函数导入另一个js文件,但是它不起作用。 如果我写“ elements.searchInput.value;” 如果我执行“ console.log(elements.searchInput.value)”,它将无法正常工作。 我在做与参考文件完全相同的操作,只是想知道为什么我的代码不起作用。

index.js

import "./../styles/style.scss";
import Search from './models/Search';
import * as searchView from './views/SearchView';
import { key, proxy } from './config';
import { elements } from './views/Base';

const state = {};

const controlSearch = async () => {
    const query = searchView.getInput(); // <- This doesn't work
    console.log(query) // Get nothing

    if(query) { // <- Can't get in to this part
        state.search = new Search(query);
        console.log("New Search", state);
    }
}

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

searchView.js

import { elements } from './base';

export const getInput = () => {
    elements.searchInput.value; // This code won't show up in controlSearch function

export const clearInput = () => {
    elements.searchInput.value = '';
};
base.js

export const elements = {
    searchForm: document.querySelector('.search'),
    searchResult: document.querySelector('.movie_list'),
    searchInput: document.querySelector('.search__field')
}
Search.js

import { key } from '../config';

export default class Search {
    constructor(query) {
        this.query = query;
    }

    async getResults() {
        try {
            const res = await axios(`http://`);
            this.result = res.data.results;
        }

        catch (error) {
            alert(error);
        }
    }

}

Getter函数必须返回一个值。

const yourFunction = () => { return yourVariable };

或使用箭头功能可以使用:

const yourFunction = () => yourVariable;

这是你的问题

export const getInput = () => {
    elements.searchInput.value; 

您没有返回任何更改

export const getInput = () => elements.searchInput.value; 

要么

export const getInput = () => {
    return elements.searchInput.value; 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM