【发布时间】:2018-02-19 23:46:08
【问题描述】:
问题:如何将这个 params 数组传递到我的 <Post /> 组件中,并映射 data 数组?
我的州有两个数组。 this.state = { data: [], params: [] }; 我通过 props 将它们传递到一个名为 PostList.js 的文件中。它在地图函数中呈现每个帖子(来自数据数组),见下文:
//PostList.js
//.....Removed for brevity....
render(){
// Tried let params = this.props.params; HERE
let socialPostNodes = this.props.data.map(socialPost => {
// Tried let params = this.props.params; HERE
return (
<Post
//I need params = { this.props.params } HERE
messageNumber = { socialPost.message.indexOf('', 1) }
message={ socialPost.message}
uniqueID={ socialPost['_id'] }
key={ socialPost['_id'] } >
{ socialPost.message }
</Post>
)
});
//.....removed for brevity......
我需要将this.props.params 放入<Post /> 以便我可以在 Post.js 文件中引用它们,但我不知道如何也找不到答案。
如果我尝试在 render() 之后甚至在 return(... 之前添加 let params = this.props.params; ,则不会获得道具。这意味着我不能输入<Post params={ params }... </Post>。
问题:如何将这个params 数组传递到我的<Post /> 组件中,并映射data 数组?
如果您想知道: - 数组中有数据 - 从父组件传下来成功 - Post.js 文件成功完成了我需要的工作 - 我是 reactJS 的新手 - 我可以把更多的文件放进去,请问 谢谢!
编辑 添加了 Post.js 文件 它在帖子消息中查找 {{company}} 并将其替换为字符串 'company'
class Post extends Component {
loadInParams() {
let socialMessage = this.props.message;
if (socialMessage.indexOf("{{company}}") >= 0) {
let newSocialMessage = socialMessage.replace("{{company}}", 'company')
return newSocialMessage
} else {
let newSocialMessage = socialMessage;
return newSocialMessage
}
}
render() {
return (
<div>
<h4> Post { this.props.messageNumber } </h4>
<strong>Post Template: </strong> { this.props.message }
<br />
<strong>Ready Post: </strong>
{ this.loadInParams() }
</div>
)
}
}
【问题讨论】:
-
@kevin-danikowski 我想我们很困惑。你能告诉我你通过
this.state.data和this.state.params的部分吗?它应该在您的Parent组件中,该组件正在导入从Postlist.js导出的组件。 -
@keshavDulalgravityplanx 能够解决它,我这样传递它: ...
.. . -
是的……没错。这就是我想要确定的。无论如何。
标签: javascript arrays reactjs components