Контакты
Местоположение
Украина, Днепропетровская обл., Днепр

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (13)

Лучшие ответы пользователя

Все ответы (33)
  • Почему ответ 20?

    w13vitaliy
    @w13vitaliy
    self-taught developer since 2020
    Дан массив [2, 4, 6] .
    Затем используется метод map который возращает новый массив. Как аргумент в метод map передается функция которая возращает новое значение в данном случае возводит в квадрат каждый елемент на выходе мы имеем массив [4, 16, 36] и он присваивается переменной squares. [a, b] = squares берутся числа a=4 и b=16 ну и складываются
    Ответ написан
    1 комментарий
  • Как сделать добавление карточек?

    w13vitaliy
    @w13vitaliy
    self-taught developer since 2020
    1) Что бы добавлялось с конца сделай .reverse()
    у массива (данный метод переворачивает массив) или в цикле там где определяется переменная дай ей значение равное длинной массива минус один (последний индекс) и уменьшай её пока не будет равное нулю.
    2) Что бы создать элемент воспользуйся:
    document.createElement("tag name")
    Что бы добавить используй метод .append (добовляемый элемент или узел) у елемента в который нужно добавить
    Маленький пример который чуть чуть тебе поможет разобраться в своей проблеме
    <!DOCTYPE html>
    <html>
        <head>
            <title>Page Title</title>
        </head>
        <body>
            <form id="form">
            <input type="text" id="name"/>
            <input type="text" id="image"/>
            <input type="submit" id="add" />
            </form>
        </body>
    </html>

    window.onload = function() {
        let form = document.querySelector("#form");
        let addElem = (text, src) => {
            let div = document.createElement("div");
            let h2 = document.createElement("h2");
            let img = document.createElement("img");
            img.src = src;
            div.append(img);
            h2.textContent = text;
            div.append(h2);
            return div;
        }
        form.onsubmit = () => {
            let name = document.querySelector("#name");
                    let image = document.querySelector("#image");
                    document.body.append(addElem(name.value, image.value));
                    return false;
        }
    }
    Ответ написан
    1 комментарий
  • Как находить нужный объект по клику из массива объектов?

    w13vitaliy
    @w13vitaliy
    self-taught developer since 2020
    // Отрисовываем карточки
    
    const cards = document.querySelectorALl("card selector")
    for(const card of cards) {
    card.addEventListener("click", e => {
    // у каждой карточки в атрибуте id задайте ID индификатор (_id) card.id = _id
    const id = e.target.id // получаем индификатор и отправляем на сервер
    
    
    })
    }
    Ответ написан
    Комментировать
  • 'props' is not defined no-undef. Что я делаю не так?

    w13vitaliy
    @w13vitaliy
    self-taught developer since 2020
    у вас в компоненте Dialogs передается в props функция sendMessage вы должны ее прокинуть в компонент AddMessageForm :



    import React from 'react';
    import classes from './Dialogs.module.css';
    import DialogItem from "./DialogItem/DialogItem";
    import Message from "./Message/Message";
    import {Redirect} from "react-router-dom";
    import {Field, Form, Formik} from 'formik';
    
    const Dialogs = (props) => {
        let state = props.dialogsPage;
    
        let dialogsElements = state.dialogs
            .map(el => <DialogItem name={el.name} key={el.id} id={el.id} avatar={el.avatar}/>);
        let messagesElements = state.messages
            .map(el => <Message message={el.message} key={el.id}/>);
    
    
        if (!props.isAuth) return <Redirect to={"/login"}/>;
    
        return (
            <div className={classes.dialogs}>
                <div className={classes.dialogsItems}>
                    {dialogsElements}
                </div>
                <div className={classes.messages}>
                    <div>{messagesElements}</div>
                </div>
                <AddMessageForm sendMessage={props.sendMessage}/>
            </div>
        )
    }
    
    
    
    const AddMessageForm = (props) => {
    const initialValues = {
        newMessageBody: ''
    }
    const onSubmit = values => {
        props.sendMessage(values.newMessageBody);
        console.log('запись', values)
    }
        return (
            <Formik initialValues={initialValues} onSubmit={onSubmit}>
                <Form>
                    <div>
                        <div>
                            <Field as='textarea'
                                   id='newMessageBody'
                                   name='newMessageBody'/>
                        </div>
                        <button type='submit'>Submit</button>
                    </div>
                </Form>
            </Formik>
        )
    }
    
    export default Dialogs;
    Ответ написан
    2 комментария
  • Как работает state и setState изнутри?

    w13vitaliy
    @w13vitaliy
    self-taught developer since 2020
    setState работает следуещем способом:
    принимает на вход функцию возвращающее новое состояние или новое состояние. Так как state - это объект тогда он делает следуещее:

    // ... - spread оператор
    state = {...state, ...newState} // так как newState идет после state тогда он перепишет все старые значения на новые или добавит новые

    https://learn.javascript.ru/rest-parameters-spread...
    Ответ написан
    2 комментария