繁体   English   中英

无法将反应道具价值传递给另一个组件

[英]Having trouble passing react props value to another component

我在将道具传递到另一个组件时遇到了麻烦。此代码来自我的App组件,由onClick触发

 addServer() {
    let serverArr = ['Server 1','Server 2'];
    serverArr.push(this.state.serverName);
    return (
        <ServerList server={serverArr}/> // Here i am passing the array as prop
      )

  }

这是我要使用道具的组件中的代码,我试图显示传递的道具

export class ServerList extends React.Component {
    render(){
        let server = this.props.server.map((item, index) => {
           return <li key={index}> {item} </li>;
        })
        return (
                <div className="container-server">
                <ul> {server} </ul>
                </div>
        )
   }
}

我不确定您的情况,但我猜是,因为您正在使用来对数组进行变异

array.push()  

你应该打电话

 this.forceUpdate() 

用于重新渲染组件的函数,所以只需尝试一下

addServer() {
let serverArr = ['Server 1','Server 2'];
serverArr.push(this.state.serverName);
this.forceUpdate();
return (
    <ServerList server={serverArr}/> // Here i am passing the array as prop
  )  }

什么是价值this.state.serverNameserverArr.push行? 在该行之前,请Console.log this.state.serverName

还在serverArr.push行之后的console.log serverArr

然后let server行之后的console.log server

this.props.server let sever连接之前,还应该console.log this.props.server

进行这些检查后,您应该查明错误所在。

最后,实际错误是什么。 是在控制台中编写了某些内容,还是看不到组件,或者组件呈现的异常?

编辑:您应该在serverArr置于state AppComponent ,然后进行渲染。 例如:

class AppComponent extends React.Component {

    constructor(props){
         super(props);
         this.state = {serverArr: ['Server 1', 'Server2']};
         this.addServer = this.addServer.bind(this);
    }

    function addServer() {
    }

    render(){
        return (
              <div>
                <ServerList server={serverArr}/>
                <button onClick={this.addServer}>Add</button>
              </div>
        );
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM