Muchos de los tutoriales para encuestas/formularios en React tienden a cubrir solo la mecánica de front-end. En mi caso, prácticamente tengo el front-end donde lo quiero, pero me he dado cuenta de que no sé prácticamente nada sobre la programación de back-end.
Pensé que era mejor dar pequeños pasos, por lo que tal vez agregar una línea a un json/tsv después de que el usuario haga clic en un botón sería un objetivo razonable. Me imagino que el usuario manipula todas las campanas y silbatos que tengo y luego, una vez que hace clic en "enviar", se agrega una nueva fila a un archivo "master_data.tsv" en el back-end.
Solo como ilustración, la parte del state
que me gustaría salvar es:
state = { selectBoxes: [ {id:1, strategies:['Strat1','Strat2', 'Strat3','Strat4','Strat5']}, ]
Por contexto, este estado se transmite a los componentes del menú desplegable que tienen detectores de eventos para registrar la elección del usuario. Lo tengo para que el estado se actualice para reflejar la elección deseada del usuario. Pero no he descubierto cómo volcar los datos en el back-end una vez que se selecciona la opción y el usuario hace clic en "enviar".
Suponiendo flujo de clics:
Toggle dropdown menu -> choose item -> click "submit" button
¿Cómo agregaría una nueva fila a master_data.tsv
después de cada evento "enviar"?
(puede ignorar la calificación de usuario único y todas las cosas sofisticadas, aunque tal vez podamos conformarnos con que cada nueva fila tenga una id
).
Recomendaría dar un paso atrás y primero pensar en el flujo real y la persistencia de datos de su aplicación.
Recomendaría crear un servidor backend (cualquier idioma) que le ofrezca publicar los datos a través de un punto final API (generalmente una API REST con un punto final POST
). Después de recibir sus datos, debe conservarlos. Ya sea en una base de datos, en una sesión o en disco. El último paso es recuperar los datos en el formato deseado ( tsv
). Cree otro punto final para devolver los datos o devuelva el archivo completo que ya se encuentra en POST. Aquí hay un flujo de ejemplo de cómo podría verse
POST /entries
)GET /entries
) De esta manera eres más bien flexible y desacoplado. Más tarde, podría cambiar el formato fácilmente a JSON
, XML
, CSV
… Su fuente de verdad siempre debe ser su capa de almacenamiento (base de datos, archivo en disco)