Size: a a a

React — русскоговорящее сообщество

2020 July 04

И

Иван in React — русскоговорящее сообщество
Vladimir Samoilenko
Замахался уже эту ошибку получать и все никак не усвою, в чем цимес. Каждая article имеет структуру { id, text, list}, list - массив. Редактируется инпут со строкой из list, вот функция onChange. Выдает ворнинг component is changing a controlled input of type text to be uncontrolled. Input elements should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled input element for the lifetime of the component.

Что я делаю не так?
К вопросу не относится, но: ты же понимаешь, что это ссылка на одно и то же значение и оно не изменится после вызова функции, да?
источник

И

Иван in React — русскоговорящее сообщество
Михалыч
Привет. У меня есть классовая комп. где делается запрос на серв (она рисует несколько видов товаров,
в зависимости от урла). Классовую комп. покрывает withRouter чтобы иметь возможность читать инфу с урла. Проблема в том, что классовая комп. монтируется 1 раз и при дальнейшем переходе на другую ссылку ничего не происходит, поскольку комп. уже вмонтирована. А хотелось бы сделать ajax запрос, засетаты новую инфу и перерисовать ui. Мою проблему решат хуки или нет?
Классовый
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Михалыч
Привет. У меня есть классовая комп. где делается запрос на серв (она рисует несколько видов товаров,
в зависимости от урла). Классовую комп. покрывает withRouter чтобы иметь возможность читать инфу с урла. Проблема в том, что классовая комп. монтируется 1 раз и при дальнейшем переходе на другую ссылку ничего не происходит, поскольку комп. уже вмонтирована. А хотелось бы сделать ajax запрос, засетаты новую инфу и перерисовать ui. Мою проблему решат хуки или нет?
классовЫЙ компонеТ
источник

М

Михалыч in React — русскоговорящее сообщество
оке понял
источник

VS

Vladimir Samoilenko in React — русскоговорящее сообщество
Иван
К вопросу не относится, но: ты же понимаешь, что это ссылка на одно и то же значение и оно не изменится после вызова функции, да?
да, понимаю
источник

VS

Vladimir Samoilenko in React — русскоговорящее сообщество
Rustam Sahatov
Во время первого рендера undefined
почему?
источник

И

Иван in React — русскоговорящее сообщество
Михалыч
Привет. У меня есть классовая комп. где делается запрос на серв (она рисует несколько видов товаров,
в зависимости от урла). Классовую комп. покрывает withRouter чтобы иметь возможность читать инфу с урла. Проблема в том, что классовая комп. монтируется 1 раз и при дальнейшем переходе на другую ссылку ничего не происходит, поскольку комп. уже вмонтирована. А хотелось бы сделать ajax запрос, засетаты новую инфу и перерисовать ui. Мою проблему решат хуки или нет?
Нет, твою проблему хуки не решат — хуки предоставляют тот же функционал, что и классы. Проблему решит исправление ошибки, на классах или на хуках — без разницы
источник

М

Михалыч in React — русскоговорящее сообщество
понял спасибо
источник

И

Иван in React — русскоговорящее сообщество
Vladimir Samoilenko
почему?
Выложи код в песочницу
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
Vladimir Samoilenko
вот инпут. value назначается сразу, как оно может пропадать?
Ты не проверяешь на пустой массив/undefined перед map
источник

VS

Vladimir Samoilenko in React — русскоговорящее сообщество
Иван
Выложи код в песочницу
весь проект?
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
Rustam Sahatov
Ты не проверяешь на пустой массив/undefined перед map
А данные тебе приходят после того, как компонент маунтится. И происходит ререндер
источник

И

Иван in React — русскоговорящее сообщество
Vladimir Samoilenko
весь проект?
Минимальное количества кода, которое воспроизводит проблему.

Походу, надо написать статью «как пользоваться песочницами»
источник

B

Bakhtovar in React — русскоговорящее сообщество
Ребят
привет

Кто может помочь с одним заданием застрял (router & array)
напишите в личку

буду очень благодарен кто сможет потратить свое время чтоб помочь)
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Bakhtovar
Ребят
привет

Кто может помочь с одним заданием застрял (router & array)
напишите в личку

буду очень благодарен кто сможет потратить свое время чтоб помочь)
в личку писать никто не будет, опиши проблему здесь
источник

B

Bakhtovar in React — русскоговорящее сообщество
источник

B

Bakhtovar in React — русскоговорящее сообщество
import React from 'react';
import './App.css';
import { useHistory, useParams, Route } from 'react-router-dom';
import artists from './ArtistList';



function ArtistProfile() {

const history = useHistory();

const {id} = useParams();

const selectedArtist= artists.find(artists => artists.id===id);

if(selectedArtist===undefined){
   return <h1>error</h1>
 
}
const handleClick=()=>{
   history.push("/");

}

   return (
       <div>
          <button type="button" onClick={handleClick}>
     Go home
   </button>
        <h1>{selectedArtist.name}</h1>
        <h2>Songs:</h2>
        <ul>
   {selectedArtist.songs.map((song, index)=> <li key={index}>{song}</li>)}
        </ul>

       </div>
   )
}
export default ArtistProfile();
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
Иван
Минимальное количества кода, которое воспроизводит проблему.

Походу, надо написать статью «как пользоваться песочницами»
И ещё написать статью как правильно формулировать вопрос
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
Bakhtovar
import React from 'react';
import './App.css';
import { useHistory, useParams, Route } from 'react-router-dom';
import artists from './ArtistList';



function ArtistProfile() {

const history = useHistory();

const {id} = useParams();

const selectedArtist= artists.find(artists => artists.id===id);

if(selectedArtist===undefined){
   return <h1>error</h1>
 
}
const handleClick=()=>{
   history.push("/");

}

   return (
       <div>
          <button type="button" onClick={handleClick}>
     Go home
   </button>
        <h1>{selectedArtist.name}</h1>
        <h2>Songs:</h2>
        <ul>
   {selectedArtist.songs.map((song, index)=> <li key={index}>{song}</li>)}
        </ul>

       </div>
   )
}
export default ArtistProfile();
В export default убери вызов функции
источник

VS

Vladimir Samoilenko in React — русскоговорящее сообщество
Rustam Sahatov
А данные тебе приходят после того, как компонент маунтится. И происходит ререндер
Данные прилетают через useSelector. Реально прилетают, инпуты непустые.
источник