无论我们检查数组还是对象的类型,它总是在 JavaScript 中打印对象。为什么这样?
let arr=[1,3,4];
let obj={1:"44",num:44};
console.log(typeof(arr)) //object
console.log(typeof(obj)) //object
Run Code Online (Sandbox Code Playgroud)
有什么方法可以将 typeof(array) 视为数组吗?
通过不深入实际用法,我创建了一个简单的示例来解释我想要做什么。
我有一个状态对象{num:0},我想在 10 秒内每秒更新一次 num,据此,我创建了一个工作完美的类组件。
class App extends React.Component {
constructor() {
super();
this.state = {
num: 0
};
}
componentDidMount = () => {
for (let i = 0; i < 10; i++) {
setTimeout(() => this.setState({ num: this.state.num + 1 }), i * 1000);
}
};
render() {
return (
<>
<p>hello</p>
<p>{this.state.num}</p>
</>
);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想在功能组件中复制相同的功能,但我做不到。我尝试如下图所示:
const App = () => {
const [state, setState] = React.useState({ num: 0 });
React.useEffect(() => {
for …Run Code Online (Sandbox Code Playgroud) javascript ×2
arrays ×1
object ×1
react-hooks ×1
reactjs ×1
settimeout ×1
typeof ×1
use-effect ×1