Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jsrtPmCoTOS 96 of 112 menu
◀ ▶

Uma Fonte Única da Verdade no React

Para quaisquer dados mutáveis em uma aplicação React deve haver uma fonte única da verdade. Isso significa que se você tem dois estados e um estado pode ser calculado a partir do outro - então um dos estados é redundante e deve ser removido.

Vamos discutir isso com um exemplo. Suponha que você, por exemplo, tenha duas entradas: na primeira é inserida a temperatura em graus Fahrenheit, e na segunda - em graus Celsius. E queremos que ambas as entradas estejam sincronizadas: ao inserir a temperatura em uma entrada, ela deve mudar correspondentemente na segunda.

A abordagem incorreta seria criar dois estados: um para a temperatura em Fahrenheit, e o segundo - em Celsius. Por que está incorreto: porque uma temperatura é calculada a partir da outra, o que significa que deve haver apenas um estado como local de armazenamento dos dados.

Escreva a implementação da tarefa descrita.

Um determinado programador escreveu um código que exibe a soma dos elementos de um array:

function getSum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; } function Calculator() { const [value, setValue] = useState(''); const [nums, setNums] = useState([1, 2, 3]); const [sum, setSum] = useState(6); // soma dos elementos do array nums function handleChange(event) { setValue(event.target.value); } function handleBlur(event) { setNums([...nums, event.target.value]); // adiciona um elemento ao array setSum(getSum([...nums, event.target.value])); // recalcula a soma } return <div> <p>{sum}</p> <input value={value} onChange={handleChange} onBlur={handleBlur} /> </div>; }

O que há de errado com este código? Corrija-o.

Um determinado programador escreveu um código para editar elementos de um array:

function App() { const [notes, setNotes] = useState([1, 2, 3, 4, 5]); const [editNum, setEditNum] = useState(null); const [value, setValue] = useState(''); const result = notes.map((note, index) => { return <p key={index} onClick={() => startEdit(index)}> {note} </p>; }); function startEdit(index) { setEditNum(index); setValue(notes[index]); // escreve o texto do elemento editado em um estado separado } function changeItem(event) { setValue(event.target.value); setNotes([...notes.slice(0, editNum), event.target.value,...notes.slice(editNum + 1)]); } return <div> {result} <input value={value} onChange={changeItem} /> </div>; }

O que há de errado com este código? Corrija-o.

← →
↑
Português▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar