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

时间:2017-12-11 17:33:27

标签: javascript reactjs

我无法将道具传递给另一个组件 此代码来自我的应用程序组件,它由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>
        )
   }
}

2 个答案:

答案 0 :(得分:0)

我不确定你的情况,但我的猜测是,因为你正在使用

改变数组
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
  )  }

答案 1 :(得分:-1)

If ( attempts > max attempts then attempt login ) { "Sorry to many attempts" else { Check login if failed { Attempts++ } else (login success) { set attempts = 0 } (reset attempts counter)} } this.state.serverName的价值是多少?在该行之前的Console.log serverArr.push

this.state.serverName行之后也是console.log serverArr

然后在serverArr.push行之后的console.log server

您还应该在let server行之前安装console.log this.props.server

进行这些检查时,您应该确定错误的位置。

最后,实际的错误是什么。是在控制台中写的东西,还是你看不到组件,或组件是奇怪的渲染?

编辑: 您应该在let sever的{​​{1}}中有serverArr,然后进行渲染。例如:

state