Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему то выводиться undefined в консоли

Николай Серебряков Ученик (195), на голосовании 1 год назад
 import React, { useRef, useState } from "react";
import ClassCounter from "./components/ClassCounter";
import Counter from "./components/Counter";
import PostItem from "./components/PostItems";
import PostList from "./components/PostList";
import MyButton from "./components/UI/button/MyButton";
import MyInput from "./components/UI/input/MyInput";
import "./styles/App.css";

function App() {
const [posts, setPosts] = useState([
{ id: 1, title: 'JavaScript', body: 'Description' },
{ id: 2, title: 'JavaScript 2', body: 'Description' },
{ id: 3, title: 'JavaScript 3', body: 'Description' },
]);

const [title, setTitle] = useState('');
const [body, setBody] = useState('');

const addNewPost = (e) => {
e.preventDeault()
const newPost = {
title,
body
}
console.log(newPost);
};

return (


value={title}
onChange={e => setTitle(e.target.value)}
type="text"
placeholder="Название поста"
/>
{/* Не управляемый/ неконтролируемый элемент */}
value={body}
onChange={e => setBody(e.target.value)}
type="text"
placeholder="Описание поста"
/>
Создать пост



);
}

export default App;
Дополнен 1 год назад
Также в терминале выводится это
WARNING in [eslint]
src\App.js
Line 1:17: 'useRef' is defined but never used no-unused-vars
Line 2:8: 'ClassCounter' is defined but never used no-unused-vars
Line 3:8: 'Counter' is defined but never used no-unused-vars
Line 4:8: 'PostItem' is defined but never used no-unused-vars
Line 11:17: 'setPosts' is assigned a value but never used no-unused-vars

webpack compiled with 1 warning
Голосование за лучший ответ
Павел Просветленный (25621) 1 год назад
Консоль тебе показывает в каком месте и в каком файле что выводится.
М . Мастер (2125) 1 год назад
Сделай addNewPost чистой функцией, аргументы передать можно замыканием, или забиндить(bind), что в сути одно и тоже. - Это точно поможет. Как минус, возможна утечка памяти

Но сначала попробуй заюзать useCallback передав переменные во втором аргументе, он как раз на такой случай.

P.S. Рынок переполнен выкинутыми frontend разработчиками, напрасно тратишь силы. Фронтендеры считаются необязательными разработчиками так как сайту необязательно функционировать как app приложению.
Николай СеребряковУченик (195) 1 год назад
можете написать как это должно выглядеть. Просто тока тока начал изучать React немного не понимаю
Николай СеребряковУченик (195) 1 год назад
Почему то он не видит что я импортирован MyInput

М . Мастер (2125) Николай Серебряков, На скрине 1 импорт есть, только нигде не применен. На скрине 2 объявлена переменная MyInput c хоком и она же сразу же используется в рендере) Так делать нельзя. И название файла с каскадной таблицей стилей назван с большой буквы - это трындец. CSS классы - это не JS классы, ничего общего! В react файлы с функциями (компонентами) пошла традиция называть с большой буквы потому что изначально внутри экспортировались классы, но css классы в чем провинились?
М .Мастер (2125) 1 год назад
 const addNewPost = useCallback((e) => { 
// You function
}, [title, body]);
Вариант 1, использование хука


 const addNewPost = ({ title, body }) => (e) => {
// You function
};

Вариант 2, замыкание
М .Мастер (2125) 1 год назад
Я знаю что при инициализации react приложения в авто режиме создаётся App.css названный с большой буквы, но тимлиды тоже подхватывают какие-то нелепости. Порой даже в солидных библиотеках вижу фейспавны как переменной url передается натуральный uri адрес facepalm
Похожие вопросы