当前位置: 首页 > 知识库问答 >
问题:

如何从组件向道具传递值并设置状态

赫连鸿振
2023-03-14

我是反应的新手,尝试将一个值从父组件传递给子组件到props并将值存储在状态中。但它甚至不调用console.log语句

这是我的函数通过单击按钮来更改字符串

let actionToPerform = "";

function changeEdit(){
    if(actionToPerform === 'edit'){
        actionToPerform = 'new'
    }else{
        actionToPerform = 'edit'
    }
}

在父组件中,在渲染中我有这个:

<Edit action={actionToPerform}
                    />

子组件

从“React”导入React;将*作为样式从“”导入/编辑单元css’;

export default class Edit extends React.Component {

    constructor(props){
        super(props);
        this.state = {actionToPerform: this.props.actionToPerform}
        console.log("props:" + props)
        console.log("parsed state: " + this.state)
    }

    showContent = ()=>{
        if(this.state.actionToPerform == "edit"){
            return <div>Shoppinliste bearbeiten</div>
        }
    }

   render() {
       return (
          this.showContent
       )
   }
}

我的目标是,根据通过单击按钮更改的状态,显示div或不显示div。

共有1个答案

相野
2023-03-14

您正在将操作道具传递给子级,但正在解析actionToPerform。您需要解析子级中的操作。

控制台日志应位于构造函数外部。

export default class Edit extends React.Component {

constructor(props){
    super(props);
    this.state = {actionToPerform: this.props.action}
   
}



showContent = ()=>{
    console.log("props:" + props)
    console.log("parsed state: " + this.state)

    if(this.state.actionToPerform == "edit"){
        return <div>Shoppinliste bearbeiten</div>
    }
}

 render() {
   return (
      this.showContent
   )
  }
  }
 类似资料:
  • 我试图在我的应用程序中分解组件,但在理解如何将状态和道具从父组件传递给子组件时遇到了一些问题。对于上下文,“我的子组件”是一个表,它在行中呈现较小的组件。 现在我有一个名为BookComponents的常量,它需要一本书并写入状态。我被卡住的地方是传递状态和道具到我的书桌组件,这样我就可以在书桌上呈现书籍,而不是在主页上。 主页: 书桌代码:

  • 问题内容: 一个人如何将没有价值的道具传递给反应成分? 注意-没有为这些道具指定默认道具值。 我似乎找不到关于它的任何引用,但是通过观察这些属性的值(它们在默认情况下会分配给它们)。 问题答案: 编译器将您传递的内容解释为布尔值属性。编写纯HTML时也是如此。没有值的属性被解释为布尔值。由于JSX是用于编写HTML的语法糖,因此具有相同的行为是有道理的。 官方的React文档包含以下内容: 布尔属

  • 我在索引中创建了新的PublicClientApplication。tsx。现在我想把这个传递给我的withAuthHOC。该应用程序正在使用此HOC。tsx。所以我想在HOC中使用PublicClientApplication(pca道具)。我怎么做? 我的AppProps。tsx: 我的索引。tsx: 我的App.tsx: 我的名字是withAuthHOC。tsx:

  • 我正在使用react语义ui模态对象。打开模态的对象是一个道具。 我想在另一个组件中嵌入模态: 如何传递JSX代码(

  • 所以我想通过firebase函数设置访问,然后把这个访问道具作为道具传递给tabs组件,但是tabs组件的初始状态为null,firebase auth funtion在此之后就解决了。

  • 对于Eample: 我在谷歌上搜索了这个问题,我发现我找到的答案已经过时了 关于StackOVerflow的几个问题 reactJS:为什么将组件初始状态传递为prop是反模式? reactJS:如何在呈现组件时传递初始状态? 但是我在React博客中发现了这个帖子:React v0.13.0 Beta 1 在这篇文章中,author做了我想做的事情,据我所知,现在是不推荐的。 所以问题是:通过道