如何通过onClick随机使用array.map,useState,useEffect在React中显示项目?

马可汉

我正在尝试制作一个名称生成器组件,当用户单击按钮时,该组件将显示数组中具有相应含义的名称。我正在使用useState来设置初始状态以及随机遍历数组以及useEffect(尽管不确定是否必要)。我宁愿使用array.map()方法进行随机化。组件代码如下:

import React, { useState, useEffect } from "react";

const GeneratorNew = () => {
  const startingName = [{ id: 0, value: "Update Name!" }];

  const nameList = [
      { id: 1, name: 'Astghik', meaning: 'little star' }, 
      { id: 2, name: 'Tagouhi', meaning: 'Queen' }, 
      { id: 3, name: 'Lusine', meaning: 'Moon' }]
  ;

  const [stateOptions, setStateValues] = useState(startingName);
  // startingName.push(...nameList);

  useEffect(() => {
    setStateValues(nameList);
  }, []);

  return (
    <div>
      <h1>{nameList.name}</h1>
      <p>{nameList.meaning}</p>
      <button>
        {stateOptions.map((nameList, index) => (
          <option key={nameList.id}>{nameList.value}</option>
        ))}
      </button>
    </div>
  );
};

export default GeneratorNew;
乌迈尔·里亚兹(Umair Riaz)
import React, { useState, useEffect } from "react";

const GeneratorNew = () => {
  const startingName = [{ id: 0, value: "Update Name!" }];

  const nameList = [
      { id: 1, name: 'Astghik', meaning: 'little star' }, 
      { id: 2, name: 'Tagouhi', meaning: 'Queen' }, 
      { id: 3, name: 'Lusine', meaning: 'Moon' }]
  ;

  const [stateOptions, setStateValues] = useState(startingName);


  const handleOnClick = () => {
     setStateValues(nameList[Math.floor(Math.random() * (nameList.length - 1))])
  }

  return (
    <div>
      <h1>{nameList.name}</h1>
      <p>{nameList.meaning}</p>
      <button onClick={() => handleOnClick()}>
        {stateOptions.map((nameList, index) => (
          <option key={nameList.id}>{nameList.value}</option>
        ))}
      </button>
    </div>
  );
};

export default GeneratorNew;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

react useEffect 如何与 useState 挂钩?

使用 useState 和 useEffect 过滤项目列表中处于状态的项目

使用回调和钩子(useState,useEffect)从父项中的 onClick 事件更改 React 子组件的状态

React - 如何使用 UseEffect 中的 useState 更新对象数组中的特定字段

如何测试useState和useEffect React钩子

使用 React 中的 useEffect 和 useState 钩子从 get 请求管理数组

如何使用onClick方法通过react-router传递道具

React:如何使用钩子通过 onClick 刷新组件

如何通过OnClick事件使用CodeBehind中未提供的方法?

使用useState react钩子后返回的状态变量显示.map不是函数

如何显示数组中的随机项目?

如何使用React显示数组中特定数量的项目

如何显示/隐藏 array.map() 的项目

在React中使用useState和useEffect的无限循环

React 函数式组件,useState 回调不使用useEffect

通过useState react将类添加到.map函数中的元素

使用useEffect挂钩在功能组件中不显示.map()的元素

React Table如何使用Map循环显示每行3个项目

如何在react js中显示所选项目?

如何动态显示/隐藏react中的项目列表

如何在React(JSX)中显示项目列表(键值对)?

如何过滤React中屏幕上显示的数组项目?

尝试使用React Bootstrap分页显示数组中的项目

通过反应中的onClick从array.map检索数据

如何在 React 中使用 onClick 保存和删除 useState 中的值?

如何生成一个随机字符串并使用Mono将其推出,以便每X秒或通过Spring Reactive随机延迟在浏览器中显示?

如何显示通过Material UI React选择了菜单列表中的哪个项目?

如何正确设置setState和useEffect以从React中的对象读取和显示值(挂钩)?

如何使用React useState Hook设置显示样式属性