首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mernstack。如何在React上创建评论后立即重新加载评论

Mernstack是一种全栈开发技术栈,由MongoDB、Express.js、React和Node.js组成。它允许开发人员使用JavaScript语言在前端和后端开发中实现一致性。

要在React上创建评论后立即重新加载评论,可以按照以下步骤进行操作:

  1. 创建一个React组件,用于显示评论列表和评论表单。
  2. 在组件的状态中添加一个用于存储评论数据的数组。
  3. 使用React的生命周期方法(如componentDidMount)或React钩子(如useEffect)来在组件加载时从后端获取评论数据,并将其存储在状态中。
  4. 在组件中添加一个处理提交评论的方法。该方法将发送评论数据到后端,并在成功后更新评论列表的状态。
  5. 在评论表单中添加一个提交按钮,并将提交按钮的点击事件绑定到提交评论的方法。
  6. 在评论列表的渲染部分,使用状态中的评论数据来显示评论内容。
  7. 当用户提交评论后,调用提交评论的方法,并在成功后重新加载评论数据。

以下是一个示例代码,演示如何在React上创建评论后立即重新加载评论:

代码语言:txt
复制
import React, { useState, useEffect } from 'react';

const CommentList = () => {
  const [comments, setComments] = useState([]);

  useEffect(() => {
    // 在组件加载时从后端获取评论数据
    fetch('/api/comments')
      .then(response => response.json())
      .then(data => setComments(data));
  }, []);

  const handleSubmitComment = (comment) => {
    // 将评论数据发送到后端
    fetch('/api/comments', {
      method: 'POST',
      body: JSON.stringify(comment),
      headers: {
        'Content-Type': 'application/json'
      }
    })
      .then(response => response.json())
      .then(data => {
        // 更新评论列表的状态
        setComments([...comments, data]);
      });
  };

  return (
    <div>
      <h2>评论列表</h2>
      {comments.map(comment => (
        <div key={comment.id}>
          <p>{comment.text}</p>
          <p>作者:{comment.author}</p>
        </div>
      ))}
      <CommentForm onSubmit={handleSubmitComment} />
    </div>
  );
};

const CommentForm = ({ onSubmit }) => {
  const [text, setText] = useState('');
  const [author, setAuthor] = useState('');

  const handleSubmit = (e) => {
    e.preventDefault();
    // 构建评论对象
    const comment = { text, author };
    // 调用父组件传递的提交评论的方法
    onSubmit(comment);
    // 清空表单
    setText('');
    setAuthor('');
  };

  return (
    <form onSubmit={handleSubmit}>
      <h3>发表评论</h3>
      <div>
        <label>评论内容:</label>
        <textarea value={text} onChange={e => setText(e.target.value)} />
      </div>
      <div>
        <label>作者:</label>
        <input type="text" value={author} onChange={e => setAuthor(e.target.value)} />
      </div>
      <button type="submit">提交</button>
    </form>
  );
};

export default CommentList;

这只是一个简单的示例,实际应用中可能需要根据具体情况进行修改和扩展。同时,你可以根据具体需求选择合适的腾讯云产品来支持你的Mernstack应用,例如使用腾讯云的云服务器、云数据库MongoDB版、云函数等。具体产品选择和介绍可以参考腾讯云官方文档。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券