React道具不确定
我非常新手反应,所以这是我的第一个问题。
我无法在儿童组成部分中访问道具。 我需要将功能从父母传递给孩子们, 从孩子那里获取数据。
浏览器控制台中的错误代码:
eppenseform.js:27未熟练的typeerror:props.saveexpensedata不是 功能 在subsithandler(eppenseform.js:27:1)
我试图将“测试”支架记录到控制台,但它也不确定。 认为道具有问题。
因此,
import React from 'react';
import ExpenseForm from './ExpenseForm';
const NewExpense = () => {
const saveExpenseDataHandler = enteredExpenseData => {
const expenseData = {
...enteredExpenseData,
id: Math.random().toString,
};
console.log(expenseData);
};
return (
<div>
<ExpenseForm onSaveExpenseData={saveExpenseDataHandler} test="test" />
</div>
);
};
export default NewExpense;
我
import React, { useState } from 'react';
function ExpenseForm(props) {
const [enteredTitle, setEnteredTitle] = useState('');
const [enteredAmount, setEnteredAmount] = useState('');
const [enteredDate, setEnteredDate] = useState('');
const titleChangeHandler = e => {
setEnteredTitle(e.target.value);
};
const amountChangeHandler = e => {
setEnteredAmount(e.target.value);
};
const dateChangeHandler = e => {
setEnteredDate(e.target.value);
};
const submitHandler = e => {
e.preventDefault();
const expenseData = {
title: enteredTitle,
amount: enteredAmount,
date: new Date(enteredDate),
};
props.onSaveExpenseData(expenseData);
console.log(props.test);
setEnteredTitle('');
setEnteredAmount('');
setEnteredDate('');
};
+ return
I'm very new to React, so here is my first problem.
I can't access my props in a children component.
I need to pass a function from the parent to the children,
to get Data from the Children.
Error Code in Browser Console:
ExpenseForm.js:27 Uncaught TypeError: props.onSaveExpenseData is not a
function
at submitHandler (ExpenseForm.js:27:1)
I've tried to log a "test" prop to the console, but its also undefined..
so i think that something is wrong with the props..
Heres my parent:
import React from 'react';
import ExpenseForm from './ExpenseForm';
const NewExpense = () => {
const saveExpenseDataHandler = enteredExpenseData => {
const expenseData = {
...enteredExpenseData,
id: Math.random().toString,
};
console.log(expenseData);
};
return (
<div>
<ExpenseForm onSaveExpenseData={saveExpenseDataHandler} test="test" />
</div>
);
};
export default NewExpense;
And this is my children component:
import React, { useState } from 'react';
function ExpenseForm(props) {
const [enteredTitle, setEnteredTitle] = useState('');
const [enteredAmount, setEnteredAmount] = useState('');
const [enteredDate, setEnteredDate] = useState('');
const titleChangeHandler = e => {
setEnteredTitle(e.target.value);
};
const amountChangeHandler = e => {
setEnteredAmount(e.target.value);
};
const dateChangeHandler = e => {
setEnteredDate(e.target.value);
};
const submitHandler = e => {
e.preventDefault();
const expenseData = {
title: enteredTitle,
amount: enteredAmount,
date: new Date(enteredDate),
};
props.onSaveExpenseData(expenseData);
console.log(props.test);
setEnteredTitle('');
setEnteredAmount('');
setEnteredDate('');
};
+ return
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先会破坏您的道具,然后使用它。此外,您的expensedata是一个对象,而save expensedatahandler是一个函数,因此当然,onsaveExpensEdata会期望孩子中的功能。
Firstly destructure your props and then use it. Also, your expenseData is an object while saveExpenseDataHandler is a function so ofcourse onSaveExpenseData will expect a function in the child.
现在正在工作!
我的错是,我已经在app.js(主文件)而不是parent component(newexpenses.js)中渲染了子组件(eppenseform.js),
因此,我认为父母连接不存在。
It's working now!
My fault was that I've rendered the child component(ExpenseForm.js) in the app.js (main file) instead of the parent component (NewExpenses.js),
so I think the parent-children-connection was not there.