当前位置: 首页 > news >正文

仓库改造类网站怎么做网站开发遇到的难点

仓库改造类网站怎么做,网站开发遇到的难点,聊城开发网站建设,泰安人才网广纳英才招聘信息用法 乐观更新 发起异步请求时,先假设请求会成功立即更新 UI 给用户反馈若请求最终失败,再将 UI 恢复到之前的状态 const [optimisticState, addOptimistic] useOptimistic(state, updateFn) 参数 state:实际值,可以是 useSta…

用法


乐观更新

  • 发起异步请求时,先假设请求会成功
  • 立即更新 UI 给用户反馈
  • 若请求最终失败,再将 UI 恢复到之前的状态

const [optimisticState, addOptimistic] = useOptimistic(state, updateFn)

参数
state:实际值,可以是 useStateuseReduceruseContextprops
updateFn:纯函数

  • currentState
  • optimisticValue

返回值
optimisticState:乐观值

  • 正常情况下:和 state 实际值一致
  • 调用 addOptimistic 后,是 updateFn 的返回值

addOptimistic:调用updateFn,接收任意类型的 optimisticValue


注意点

  1. 要在 form ActionstartTransition 里面调用 addOptimistic
  2. 异步操作结束(无论成功还是失败),乐观值都会自动恢复成 state
    异步操作成功,需要手动 setState 更新实际值,从而更新 useOptimisticstate
    异步操作失败,不用管

测试代码

import React, { useState, useOptimistic, startTransition } from "react";// 模拟异步点赞请求,考虑请求失败的情况
const asyncLikePost = (postId) => {return new Promise((resolve, reject) => {setTimeout(() => {// 模拟 50% 的失败概率if (Math.random() < 0.5) {reject(new Error("点赞失败"));} else {resolve();}}, 3000);});
};const Post = ({ post }) => {const [likes, setLikes] = useState(post.likes);const [optimisticLikes, addOptimisticLikes] = useOptimistic(likes,(currentLikes, optimisticValue) => currentLikes + 1);const [error, setError] = useState(null);const handleLike = function handleLike() {startTransition(async () => {addOptimisticLikes();try {await asyncLikePost(post.id);setLikes((prevLikes) => prevLikes + 1);setError(null);} catch (error) {setError(error.message);}});};return (<div><p>{post.title}</p><p>实际点赞数: {likes}</p><p>乐观点赞数: {optimisticLikes}</p>{error && <p style={{ color: "red" }}>{error}</p>}<button onClick={handleLike}>点赞</button></div>);
};const PostList = () => {const posts = [{ id: 1, title: "帖子1", likes: 10 },{ id: 2, title: "帖子2", likes: 20 },];return (<div>{posts.map((post) => (<Post key={post.id} post={post} />))}</div>);
};export default function App() {return (<div><h1>帖子列表</h1><PostList /></div>);
}
http://www.dtcms.com/a/496851.html

相关文章:

  • 罗湖网站建设罗湖网站设计网站建站推广是啥意思
  • 什么2007做视频网站重庆市网站编辑
  • MQ的作用
  • 东莞网站推广专业的企业小程序开发公司
  • 柴油网站怎么做找素材的网站大全
  • Visual Basic 值传递与地址传递
  • html做音乐网站模板网站开发合同范本
  • 当地人做导游的旅游网站产品外观设计用什么软件
  • 站酷网网址银川网站建设哪家好
  • 滦南县建设局网站小程序登录的具体流程
  • 网站建设分享装饰工程 技术支持 东莞网站建设
  • 石家庄seo网站排名网站做强制访问控制
  • 广西建设工程质量监督网站做医院的网站 配色怎么选择
  • 论文精读:《Robot Person Following in Uniform Crowd Environment》
  • 网站平台建立广州做网站哪个公司做得好
  • 美工网站做兼职固安建设行政主管部门官方网站
  • 鸿蒙Harmony实战开发教学(No.6)-Search组件基础到进阶篇
  • 免费网站建设下载网站建设与推广培训学校
  • 重庆模板网站多少钱网页设计与制作课程设计报告小结
  • 如何来做网站优化湖南州省郴州
  • 网站建设公司薪资美工怎么做网站效果图
  • 用Lxml高效解析XML格式数据:以天气API为例
  • 哪些动物可以做网站名代做土木工程专业毕业设计网站
  • 门户网站建设情况简介深圳推广公司哪家正规
  • linux——基本操作指令——下
  • 免费的外贸网站推广方法教育类网站 前置审批
  • 广东集团网站建设杭州富阳建设局网站首页
  • 网站建设需要些什么设备wordpress 底部按钮
  • 建设企业网站的模式帮助中心网站源码
  • 9. 数列