Size: a a a

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

2020 December 26

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Max Max
это app.js  const App = () => {
 const [todos, setTodos] = useState([]);
 console.log(todos);
 return (
   <div className="App">
     <h1>список заметок!</h1>
     <TodoList
       todos={todos}
       deleteTodo={(todoIndex) => {
         const newTodos = todos.filter((_, index) => index !== todoIndex);
         setTodos(newTodos);
       }}
       moveUp={(todoIndex) => {
         [todos[todoIndex], todos[todoIndex - 1]] = [
           todos[todoIndex - 1],
           todos[todoIndex]
         ];
         setTodos([...todos]);
       }}
       moveDown={(todoIndex) => {
         console.log(todoIndex);
         [todos[todoIndex], todos[todoIndex + 1]] = [
           todos[todoIndex + 1],
           todos[todoIndex]
         ];
         setTodos([...todos]);
       }}
     />
     <TodoForm
       saveTodo={(todoText) => {
         const trimmedText = todoText.trim();
         if (trimmedText.length > 0) {
           setTodos([...todos, trimmedText]);
         }
       }}
     />
   </div>
 );
};

export default App;
источник

ꟿⅨ in React — русскоговорящее сообщество
Max Max
const TodoList = ({ todos, deleteTodo, moveDown, moveUp }) => {
 const [todos2, setTodos2] = useState([]);
 console.log(todos2);
 return (
   <>
     <List>
       {todos.map((todo, index) => (
         <>
           <ListItem key={index.toString()} dense>
             <ListItemText primary={todo} />

             <ListItemSecondaryAction>
               <IconButton
                 aria-label="Delete"
                 onClick={() => {
                   deleteTodo(index);
                 }}
               >
                 <DeleteIcon />
               </IconButton>
             </ListItemSecondaryAction>
             <ListItemText>
               <TodoFormInner
                 saveTodo={(todoText) => {
                   const trimmedText = todoText.trim();
                   if (trimmedText.length > 0) {
                     setTodos2([...todos2, trimmedText]);
                   }
                 }}
               />
             </ListItemText>
             <ListItemText>
               {index ? (
                 <ArrowUpwardSharpIcon
                   onClick={() => {
                     moveUp(index);
                   }}
                 />
               ) : (
                 ""
               )}
             </ListItemText>
             <ListItemText>
               {index === todos.length - 1 ? (
                 ""
               ) : (
                 <ArrowDownwardSharpIcon
                   onClick={() => {
                     moveDown(index);
                   }}
                 />
               )}
             </ListItemText>
           </ListItem>
           <TodoListInner todos2={todos2} />
         </>
       ))}
     </List>

     {console.log(todos)}
   </>
 );
};
полотно кода кидать бесполезно. Слушайся Диму
источник

AD

Andriy Dudariev in React — русскоговорящее сообщество
Я прифигел с количества сочетаний todo
источник

MM

Max Max in React — русскоговорящее сообщество
ꟿⅨ
полотно кода кидать бесполезно. Слушайся Диму
понял ссылка на репу норм?
источник

ꟿⅨ in React — русскоговорящее сообщество
Max Max
понял ссылка на репу норм?
[In reply to Max Max]
codesandbox.io
источник

MM

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

AD

Andriy Dudariev in React — русскоговорящее сообщество
Нельзя использовать индекс массива в качестве ключа, пожалуйста
источник

MM

Max Max in React — русскоговорящее сообщество
Andriy Dudariev
Нельзя использовать индекс массива в качестве ключа, пожалуйста
немного не понял
источник

RM

Roman Miniv in React — русскоговорящее сообщество
@zarabotaet ну тогда надо было остановится еще на хтмл, чо дальше полезли то)
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Roman Miniv
@zarabotaet ну тогда надо было остановится еще на хтмл, чо дальше полезли то)
Это к чему?
источник

RM

Roman Miniv in React — русскоговорящее сообщество
"Самая красивая анимация - это ее отсутствие и мгновенные переходы"
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Roman Miniv
"Самая красивая анимация - это ее отсутствие и мгновенные переходы"
Мгновенные переходы и перезагрузка документа несовместимые вещи
источник

RM

Roman Miniv in React — русскоговорящее сообщество
нууу это как бы вы написали)
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Roman Miniv
нууу это как бы вы написали)
Ну я помню и пояснил вам почему html недостаточно исходя из моей формулировки начальной
источник

MM

Max Max in React — русскоговорящее сообщество
ни у кого никаких мыслей?
источник

AD

Andriy Dudariev in React — русскоговорящее сообщество
Я вообще не понимаю, как оно работает
источник

MM

Max Max in React — русскоговорящее сообщество
Andriy Dudariev
Я вообще не понимаю, как оно работает
что смущает ?
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Max Max
ни у кого никаких мыслей?
Стейт который вы хотите использовать для вложеных todo один общий на весь TodoList
источник

AD

Andriy Dudariev in React — русскоговорящее сообщество
Я не нашел, где подзадача кладется в массив. Только в value
источник

АН

Андрей Негруша... in React — русскоговорящее сообщество
Всем привет. Я с небольшим вопросом.
Я знаю, что можно локально создать JSON файл и сделать запросы - такой себе фейковый API.
Это делается при помощи json server??(нагуглил его)
источник