Eu sou novo no ReactJS e na interface do usuário e queria saber como fazer uma simples chamada POST baseada em REST a partir do código ReactJS.
Se houver algum exemplo presente, seria realmente útil.
Eu sou novo no ReactJS e na interface do usuário e queria saber como fazer uma simples chamada POST baseada em REST a partir do código ReactJS.
Se houver algum exemplo presente, seria realmente útil.
Respostas:
Diretamente dos documentos do React :
(Isso está postando JSON, mas você também pode fazer, por exemplo, formulário de várias partes).
fonte
fetch()
função não retorna os dados , apenas retorna uma promessa .fetch
está embutido no React, o que não é, e não há link para os documentos mencionados.fetch
é (no momento da redação) uma API experimental baseada em promessa . Para compatibilidade com o navegador, você precisará de um polyfill babel .O React realmente não tem uma opinião sobre como você faz chamadas REST. Basicamente, você pode escolher qualquer tipo de biblioteca AJAX que desejar para esta tarefa.
A maneira mais fácil com o JavaScript antigo simples é provavelmente algo como isto:
Nos navegadores modernos, você também pode usar
fetch
.Se você tiver mais componentes que fazem chamadas REST, pode fazer sentido colocar esse tipo de lógica em uma classe que possa ser usada entre os componentes. Por exemplo
RESTClient.post(…)
fonte
fetch
ousuperagent
oujQuery
ouaxios
ou qualquer outra coisa que não faz parte do "vanilla Reagir", a fim de fazer outra coisa senão o que é postado acima .JSON.stringify({"key": "val"})
e, em seguida, no lado do balão, #request.get_json()
JSON.stringify
primeiro.Outro pacote recentemente popular é: axios
Instalar:
npm install axios --save
Pedidos simples baseados em promessas
fonte
você pode instalar superagent
depois, para fazer uma chamada posterior ao servidor
fonte
A partir de 2018 e além, você tem uma opção mais moderna que é incorporar async / wait no seu aplicativo ReactJS. Uma biblioteca de cliente HTTP baseada em promessa, como axios, pode ser usada. O código de exemplo é dado abaixo:
fonte
await
-SyntaxError: await is a reserved word (33:19)
Penso assim também de maneira normal. Desculpe, não posso descrever em inglês ((
https://googlechrome.github.io/samples/fetch-api/fetch-post.html
busca ('url / questions', {method: 'POST', headers: {Accept: 'application / json', 'Content-Type': 'application / json',}, body: JSON.stringify (this.state) }). then (response => {console.log (response)}) .catch (erro => {console.log (erro)})
fonte
Aqui está uma lista de comparação de bibliotecas ajax com base nos recursos e suporte. Prefiro usar a busca apenas para desenvolvimento no lado do cliente ou busca isomórfica para uso no desenvolvimento no lado do cliente e no servidor.
Para obter mais informações sobre busca isomórfica ou busca
fonte
Aqui está uma função util modificada (outra publicação na pilha) para obter e publicar as duas. Crie o arquivo Util.js.
Uso como abaixo em outro componente
fonte
Aqui está um exemplo: https://jsfiddle.net/69z2wepo/9888/
Ele usou o
jquery.ajax
método, mas você pode substituí-lo facilmente por bibliotecas baseadas em AJAX, como axios, superagent ou fetch.fonte
'{"Id":"112","User":"xyz"}'
e altere a URL para localhost: 8080 / myapi / ui / start, é isso, uma vez que a chamada XHR for bem-sucedida, você continuará no método concluído e terá acesso a seus dados através do resultado propriedade.