【发布时间】:2019-06-28 21:59:31
【问题描述】:
当我想将函数传递到React 中的函数组件时出现错误。问题出在哪里?
我已经开始学习React,我正在看教程。我有一个非常简单的函数组件,只有一个 <p> 元素,我的 App.js 中有一个简单的函数,一切正常,但是当我要将函数从 App.js 传递给我的函数组件时,我得到一个错误.
嗯,我做了和教程一样的事情。虽然,教程中的一切都很好(根据视频),但它对我不起作用。
谁能帮助我,让我知道问题出在哪里?
import React, { Component } from 'react';
import Person from './Person/Person';
import './App.css';
class App extends Component {
state = {
person: [
{ namd: "Ehsan", age: 36 },
{ name: "Mosen", age: 48 }
]
}
swichNameHandler = (newName) => {
this.setState({
person: [
{ name: newName, age: 37 },
{ name: "Mohsen", age: 49 }
]
})
}
render() {
return (
<div className="App">
<h1>this is react</h1>
<button onClick={this.swichNameHandler.bind(this, "ehsan")}>Click Here</button>
<Person
name={this.state.person[0].name}
age={this.state.person[0].age}
click={this.swichNameHandler} />
<Person
name={this.state.person[1].name}
age={this.state.person[1].age}
click={this.swichNameHandler}> he is my brother.</Person>
</div>
);
}
}
导出默认应用;
import React from 'react';
//Create a new Component
const person = (props) => {
return (
<div>
<p onClick={props.click}> My name is {props.name} and I am {props.age} years old.</p>
<p>{props.children}</p>
</div>
)
}
export default person;
这是我点击 p 元素时的错误:
react-dom.development.js:57 Uncaught Error: Objects are not valid as a React child (found: object with keys {dispatchConfig, _targetInst, _dispatchListeners、_dispatchInstances、nativeEvent、类型、目标、currentTarget、eventPhase、气泡、可取消、时间戳、 defaultPrevented, isTrusted, view, detail, screenX, screenY, clientX, clientY, pageX, pageY, ctrlKey, shiftKey, altKey, metaKey, getModifierState, 按钮, 按钮, relatedTarget, motionX, 运动Y, isDefaultPrevented, isPropagationStopped})
如果您打算渲染一组子项,请改用数组。
【问题讨论】:
-
快速回顾: 您的 swichNameHandler 函数需要一个参数,但在创建 Person 时您没有在该函数上传递任何参数 组件。 快速解决方案: 只需将参数传递给函数。示例:
<Person name={this.state.person[0].name} age={this.state.person[0].age} click={() =>{this.swichNameHandler("New Name")}} /> -
tnx,干得好!
标签: reactjs