react父组件 向子组件通过props传递数组,子组件中取不到


  • 0

    import React,{Component} from 'react'
    export default class ShowComment extends Component
    {
    constructor(props) {
    super(props);
    this.state = {
    items:this.props.items
    }
    }

    render(){
        return(<div>
            <table>
                <tbody>
                    {this.state.items.map((item) => (
                        <tr key={item.key}>
                            <td>{item.name}:</td>
                            <td>{item.comment}</td>
                        </tr>
                    ))}
                </tbody>
            </table>
            </div>)
    }
    

    }
    state中定义数组接受this.props.items,父组件中items为数组,但是render函数中this.state.items为空数组不知道为什么,求解


  • 0

    可以直接使用this.props.items.map()


  • 0

    父子之间用props传递通信,state是在组件内部使用的,状态更改。


  • 0

    这样的话,你的props更新了,items是不会更新的,因为这玩意说白了就是传的值,所以说就直接用props不就行了


  • 0

    //用这个生命周期函数更新一下传过来最新的数据
    componentWillReceiveProps(nextProps) { // 父组件重传props时就会调用这个方法
    if (nextProps.comments != this.state.comments){
    this.setState({
    comments:nextProps.comments
    })
    }
    return false
    }


登录后回复
 

与 ScriptOJ 的连接断开,我们正在尝试重连,请耐心等待