【问题标题】:React-Native create button when other button's onPress Event当其他按钮的 onPress 事件时 React-Native 创建按钮
【发布时间】:2023-04-10 17:57:01
【问题描述】:

我希望在 onPress 事件发生时动态创建和使用按钮。向好朋友寻求帮助。

我想要 { 在屏幕上一个 Button , -> Button click -> 创建一个 Button -> 所以我们有两个按钮 }

这是我的代码

import React, { Component } from 'react'
import { Button } from 'react-native'
const Test = () => { 
    return( 
        <Button title='test' onPress={<Button title='test1'/>}/> 
    ) 
} 
export default Test 

import React, { Component } from 'react'
import { Button } from 'react-native'
const Test = () => { 
    return( 
        <Button title='test' onPress={ButtonRender}/> 
    ) 
}
const ButtonRender =():any=>{
    return <Button title='test1'/>
}
export default Test 

我有问题。它不是创建的 Button。我需要帮助

【问题讨论】:

标签: javascript android typescript react-native


【解决方案1】:

你不能在 onPress 方法中渲染代码。

onPress={ButtonRender} 
 

这段代码不会将代码渲染到虚拟dom。基本上您不能从onPress 返回值,而是可以更改组件的状态,这会导致组件重新呈现。

那么你如何解决这个问题(另一种方法)只是一个例子没有测试过

import React, { Component } from 'react'
import { Button,Text } from 'react-native'
  function TestUseState() {

  const [buttonArr, setButtonArr] = React.useState([]);
const renderButtons = () =>{
  return buttonArr.map ((item,index)=> 
                         <Button key={index} title= "your title"> </Button > 
                       )
} 
  return (
    <>
      <Text>Buttons List</Text>
      {renderButtons()}
     <Button onPress={() => setButtonArr( [...buttonArr , "Unique Index of new Button"] )} title="Add Button"></Button> 
    </>
  )
}

【讨论】:

  • 此解决方法会创建一个按钮,但会导致错误。按下按钮时,出现“列表中的每个子项都应具有唯一的“键”道具。”的错误。发生。即使您在“新按钮的唯一索引”中输入一个更改 +1 的值并输入唯一键,也会发生错误。我需要帮助。
  • 回答更新了,映射数组时应该传递key props
  • 我很好奇你是否在谈论'界面道具{~~}'。如果正确,我想知道是否需要在'~~'中输入key并放入'map'但是我每次都分配了不同的值,但是我得到了一个错误。与接收用户输入有区别吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-18
  • 1970-01-01
  • 1970-01-01
  • 2020-03-30
  • 2021-03-28
  • 2018-05-03
  • 1970-01-01
相关资源
最近更新 更多