Uncaught TypeError: tweets.pu sh не является функцией - PullRequest
1 голос
/ 29 марта 2020

Я новичок ie на javascript, я следил за видеоуроком и в итоге получил эту ошибку Uncaught TypeError: tweets.pu sh не является функцией addTweetLocalStorage (tweet. js: 45 ). Я застрял на этом, я не знаю, что я сделал неправильно, потому что я написал точные коды, которые парень написал в видео

    //variables 
    const tweet_list = document.querySelector('#tweet_list')

    eventListeners();
    //eventlisteners

    // form submission
    function eventListeners(){
        document.querySelector('#form').addEventListener('submit', newTweet);
        //remove tweet
        tweet_list.addEventListener('click',removeTweet);
    }

    //functions
    function newTweet(e){
        e.preventDefault();
        //read the textarea value
        const text = document.querySelector('#text').value;

        //create the remove button
        const removeBtn= document.createElement('a');
        removeBtn.classList='remove';
        removeBtn.textContent='x';

        //create an <li> document
        const li=document.createElement('li');
        li.textContent=text;

        li.appendChild(removeBtn);
        tweet_list.appendChild(li);

        addTweetLocalStorage(text);
    }

    function removeTweet(e){
        if (e.target.classList.contains('remove')) {
            e.target.parentElement.remove();
        }
    } 

    //add tweet to local storage
    function  addTweetLocalStorage(text){
        let tweets = getTweetsFromStorage();
        tweets.push(text);

        //convert tweet array into string 
        localStorage.setItem('tweets', JSON.stringify('tweets'));
    }
    function getTweetsFromStorage(){
        let tweets;
        const tweetsLS = localStorage.getItem('tweets');
        if (tweetsLS === null) {
            tweets = [];
        }
        else {
            tweets=JSON.parse(tweetsLS);
        }
        return tweets;
    }

1 Ответ

0 голосов
/ 29 марта 2020

Прямо сейчас ваш 'tweets' элемент хранения - это буквально строка 'tweets', а 'tweets'.push не является функцией.

localStorage.setItem('tweets', JSON.stringify('tweets'));

должно быть

localStorage.setItem('tweets', JSON.stringify(tweets));

, и вы Придется удалить текущий строковый элемент из локального хранилища и начать без элемента вообще.

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