【发布时间】:2021-08-31 21:55:51
【问题描述】:
我正在尝试使用从 DB 中获取的值作为输入字段的初始值(在单击组件之前显示)。
但是,当单击或输入输入字段时,输入字段的value 仍然存在,这意味着无法输入新值。
组件的文件:
import React, { useEffect, useState } from "react";
import InputItem from './InputItem';
import Grid from '@material-ui/core/Grid';
import axios from 'axios';
interface Props {
income: string;
setIncome: (value: string) => void;
totalExpenses: number;
currencySymbol: string;
}
const IncomeExpensesContainer: React.FC<Props> = ({
income,
setIncome,
totalExpenses,
currencySymbol,
}: Props) => {
// Initializing didMount as false
const [didMount, setDidMount] = useState(false);
// Setting didMount to true upon mounting
useEffect(() => { setDidMount(true) }, []);
useEffect(() => {
if (didMount) {
axios.delete('http://localhost:4000/app/income')
.catch(function (error) {
console.log(error);
});
axios.post('http://localhost:4000/app/income',
{
income: income
});
}
}, [didMount,income]);
return (
<Grid container spacing={1} className="income-expenses-container">
<Grid item xs={6}>
<InputItem
onBlur={setIncome}
title="Income"
type="number"
placeholder="Your income"
value={income}
/>
</Grid>
<Grid item xs={6} className="centered">
<h3>Total Expenses</h3>
<div>{totalExpenses}{currencySymbol}</div>
</Grid>
</Grid>
);
}
export default IncomeExpensesContainer;
value 怎么可能只用作输入字段的初始值?
谢谢!
【问题讨论】:
标签: reactjs material-ui state default-value