React开发之——React组件综合案例(10)
一 概述
- 渲染评论列表
- 渲染暂无评论
- 获取评论信息
- 发表评论
- 边界情况处理
二 需求分析
案例图示
案例分析:
- 渲染评论列表(列表渲染)
- 没有评论数据时渲染:暂无评论(条件渲染)
- 获取评论信息,包括评论人和评论内容(受控组件)
- 发表评论,更新评论列表(setState())
三 渲染评论列表
3.1 过程分析
- 在 state 中初始化评论列表数据
- 使用数组的map方法遍历state中的列表数据
- 给每个被遍历的li元素添加key属性
3.2 示例代码
1-评论数据
1 | state = { |
2-评论列表
1 | <ul> |
四 渲染暂无评论
4.1 过程描述
- 判断列表数据的长度是否为0
- 如果为0,则渲染暂无评论
4.2 示例代码
1 | renderList() { |
五 获取评论信息
5.1 过程描述
使用受控组件方式处理表单元素
5.2 示例代码
1-定义用户名和评论内容
1 | state = { |
2-表单内容赋值
1 | render() { |
3-处理表单内容变化
1 | handleForm = (e) => { |
5.3 效果图
六 发表评论
6.1 过程描述
- 给按钮绑定单击事件
- 在事件处理程序中,通过state获取评论信息
- 将评论信息添加到state中,并调用 setState() 方法更新state
6.2 示例代码
1-添加评论按钮
1 | <button onClick={this.addComment}>发表评论</button> |
2-处理按钮方法
1 | addComment = (e) => { |
6.3 效果图
七 边界情况处理
7.1 过程描述
- 边界情况:清空文本框
- 边界情况:非空判断
7.2 示例代码
1-非空判断
1 | if (userName.trim() === '' || userContent.trim() === '') { |
2-清空评论人和评论内容
1 | this.setState({ |