Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Propblema com spred no setData

Boa noite colegas, estou fazendo um projeto diferente mas aplicando os mesmo conceito de cada aula do curso, me deparei com esse problema que acredito ser no spred pois quando não faco espalhamento a aplicacao funciona(surge o problema de sempre so cadastrar uma vez). quando faco o espalhamento me vem esse erro:

Uncaught TypeError: data is not iterable dataAdd App.js:17 dataSubimited App.js:26 sendData index.jsx:17 React 15 dataAdd App.js:17 dataSubimited App.js:26 sendData index.jsx:17 React 15 bind_applyFunctionN self-hosted:1349 dispatchDiscreteEvent self-hosted:1312

const App = () => {

  const [data, setData] = useState([]);

  const dataAdd = (data) => {

    **setData([...data, data]);**
  }

  return (
    <div className="App"> 

      <Header/>

      <section className='main'>
        <Form dataSubimited={data => dataAdd(data)} />
        <Wall data={data}/>
      </section>

    </div>
  );
}

link do repositorio: https://github.com/thifelipesilva/pergamum_react desde já obrigado

3 respostas
solução!

Salve, Thiago!

Sua lógica está correta, o seu problema está com o nome das variáveis. Você está chamando tudo de data, tando seu estado local quando o que você recebe no dataSubimited e no dataAdd.

Eu diferenciei aqui o valor a ser adicionado, dá uma olhada:

const App = () => {

  const [data, setData] = useState([]); 
  const dataAdd = (tobeAdded) => {    
    setData([ ...data, tobeAdded ]);
  }

  return (
    <div className="App"> 
      <Header/>
      <section className='main'>
        <Form dataSubimited={tobeAdded => dataAdd(tobeAdded)} />
        <Wall data={data}/>
      </section>
    </div>
  );
}

Salve, Vinícios. Muito obrigado por td cara!!

Por nada, Thiago!

Vida longa e próspera :)