gpt4 book ai didi

javascript - 如何创建动态变量并通过 useState() 使用它们

转载 作者:行者123 更新时间:2023-12-02 22:17:15 25 4
gpt4 key购买 nike

我有一个条件,我必须创建一个通用组件,该组件将在不同的地方使用,如下所示。

第 1 步

Image 1

第 2 步

enter image description here

在上述两个步骤中,我使用了相同的组件,只是提出的问题不同。

   stepOne: [
{
title: "Is your age less than 18 ?",
name: "age",
answer: 0
}
],
stepTwo: [
{
title: "Have you been to some trip previously ?",
name: "trip",
answer: 0
},
{
title: "Do you like adventurous sports ?",
name: "sportActive",
answer: 0
}
],

我已经成功地做到了这一点,但是使用了类组件,但现在我想使用 react 钩子(Hook)“useState()”

下面是我的查询的虚拟代码。我将在“data”参数中发送step_1和step_2。

export function YesNo({ data, setAnswer }) {
for(let i in data){
const [---] = useState(data[i].answer);
}

所以问题是如何创建动态变量并通过 useState() 使用它们,这种方法是否错误或者我没有正确理解钩子(Hook)概念。

最佳答案

你可以这样做:

基本上,神奇的一行是[evt.target.name]:{

这是 ES6 的新功能计算属性名称

更多信息https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names

import React, { useState } from "react";
import ReactDOM from "react-dom";
import "./styles.css";

function App() {
const [steps, setSteps] = useState({});

function onClick(evt) {
setSteps({
[evt.target.name]: {
value: evt.target.name
}
});
}

console.log(steps);

return (
<div className="App">
<button onClick={onClick} name="step-one">
ste one
</button>
<button onClick={onClick} name="step-two">
ste two
</button>
</div>
);
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

关于javascript - 如何创建动态变量并通过 useState() 使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59347700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com