Object 将道具渲染作为对象进行反应-don';我不明白为什么
我是个新来的反应者,我就是搞不懂 我试图将我的状态传递给父组件中的道具,然后在子组件中呈现该状态。像这样: 父组件Object 将道具渲染作为对象进行反应-don';我不明白为什么,object,reactjs,properties,render,state,Object,Reactjs,Properties,Render,State,我是个新来的反应者,我就是搞不懂 我试图将我的状态传递给父组件中的道具,然后在子组件中呈现该状态。像这样: 父组件 类应用程序扩展组件{ 建造师(道具){ 超级(道具); 此.state={ 短信:“你好” } } render(){ 返回( ); } } 子组件 const MessageList=textProp=>{ 返回( {textProp} ) } React无法正确渲染,声称它是试图渲染的对象 我可以使用{textProp.textProp}访问该属性,为什么它要呈现包含同名属
类应用程序扩展组件{
建造师(道具){
超级(道具);
此.state={
短信:“你好”
}
}
render(){
返回(
);
}
}
子组件
const MessageList=textProp=>{
返回(
{textProp}
)
}
React无法正确渲染,声称它是试图渲染的对象
我可以使用{textProp.textProp}
访问该属性,为什么它要呈现包含同名属性的对象
我相信这很简单,但我可以做一个解释
提前感谢。组件的道具是一个对象,就像它们的状态是一个对象一样。因此,您需要更像:
const MessageList = props => {
return (
<div className='MessageList'>
{props.textProp}
</div>
)
}
const MessageList=props=>{
返回(
{props.textProp}
)
}
或者,使用分解:
const MessageList = ({ textProp }) => {
return (
<div className='MessageList'>
{textProp}
</div>
)
}
constmessagelist=({textProp})=>{
返回(
{textProp}
)
}
消息列表中的textProp
是父级的道具的集合。在您的情况下,集合将只有textProp。
要实现此功能,您需要执行以下操作
const MessageList = ( {textProp} ) => {
return (
<div className='MessageList'>
{textProp}
</div>
)
}
constmessagelist=({textProp})=>{
返回(
{textProp}
)
}
或
const MessageList=(textProp)=>{
返回(
{textProp.textProp}
)
}
当您声明无状态组件时,您需要指定希望它接收的参数,在您的情况下,可以是(props)
或({specific})
:
const MessageList = ({ textProp }) => (
<div className='MessageList'>
{textProp}
</div>
);
constmessagelist=({textProp})=>(
{textProp}
);
请注意我是如何返回标记的,您不必执行{return()}
只是一个更好地运行的提示:)谢谢!解释得很好。为小费干杯!我实际上忘记了箭头函数的额外优势。。。
const MessageList = ( {textProp} ) => {
return (
<div className='MessageList'>
{textProp}
</div>
)
}
const MessageList = (textProp) => {
return (
<div className='MessageList'>
{textProp.textProp}
</div>
)
}
const MessageList = ({ textProp }) => (
<div className='MessageList'>
{textProp}
</div>
);