React中的for循环解读
更新时间:2023年01月16日 10:24:55 作者:越来越好。
这篇文章主要介绍了React中的for循环解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
React中的for循环
记得要绑定key!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="./js/react.development.js"></script>
<script src="./js/react-dom.development.js"></script>
<script src="./js/babel.min.js"></script>
<title>例子2</title>
</head>
<body>
<div id="root1"></div>
<div id="root2"></div>
<div id="root3"></div>
</body>
<script type="text/babel">
//继承实例
window.onload = () => {
var arr = ["a", "b", "d", "e", "f"];
//第一种写法 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ReactDOM.render(
<div>
{
arr.map((item, index) => {
return <div key={index}>{item}</div>
})
}
</div>,
document.getElementById("root1")
)
//第二种写法 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
var str = arr.map((item, index) => {
return <div key={index}>{item}</div>
})
ReactDOM.render(
<div>
{str}
</div>,
document.getElementById("root2")
)
//第三种写法 我们应该是最熟悉这种写法
var str=[];
for(let i=0;i<arr.length;i++){
str.push(<div key={i}>{arr[i]}</div>)
}
ReactDOM.render(
str,
document.getElementById("root3")
)
}
</script>
</html>React死循环
原因1
修改状态函数写在副作用函数里面,修改状态函数会使整个函数式组件重新执行,相当于执行了以下代码
export default function App () {
const [num, setNum] = useState(5)
console.log(setNum)
document.title = '标题' + num
useEffect(() => {
// setNum(num + 5)
document.title = '标题' + num
})
const hClick = () => {
setNum(num + 5)
// useEffect(() => {
// // setNum(num + 5)
// document.title = '标题' + num
// })
// 错误×
// Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
// 1. You might have mismatching versions of React and the renderer (such as React DOM)
// 2. You might be breaking the Rules of Hooks
// 3. You might have more than one copy of React in the same app
// See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.
}
return (<div>
num:{num}
<button type="button" onClick={() => {
// eslint-disable-next-line no-unused-expressions
hClick()
}}>每次加5</button>
</div>)
}错误代码如下:
useEffect(() => {
// setNum(num + 5)
document.title = '标题' + num
})总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
ForwardRef useImperativeHandle方法demo
这篇文章主要为大家介绍了ForwardRef useImperativeHandle方法demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-03-03
高性能React开发React Server Components详解
ReactServerComponents通过服务器端渲染、自动代码分割等技术,实现了高性能的React开发,它解决了客户端数据请求链式延迟、敏感数据暴露风险等问题,提供了更好的用户体验和安全性,本文介绍高性能React开发React Server Components详解,感兴趣的朋友一起看看吧2025-03-03
解决React报错Expected an assignment or funct
这篇文章主要为大家介绍了React报错Expected an assignment or function call and instead saw an expression解决方案详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-12-12
React Native 集成 iOS 原生功能(打印机功能为例)
在 React Native 项目中集成 iOS 原生功能是一个常见需求,本文将同样以打印机功能为例,详细介绍如何在 React Native 项目中集成 iOS 原生功能,感兴趣的朋友一起看看吧2024-12-12


最新评论