Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Object 将道具渲染作为对象进行反应-don';我不明白为什么_Object_Reactjs_Properties_Render_State - Fatal编程技术网

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>
);