reactjs - React 组件的 defaultValue 不起作用
问题描述
我正在尝试使用从 DB 获取的值作为输入字段的默认值(在单击组件之前显示)。
但是,使用“defaultValue”属性,它不会显示获取的值。
App.tsx 文件(取值成功):
const [Income, setIncome] = useState<string>('0');
useEffect(() => {
const incomeResp = async () => {
await axios.get('http://localhost:4000/app/income')
.then(
result => setIncome(result.data && result.data.length > 0 ? result.data[0].income : 0))
}
incomeResp();
}, []);
return (
<div className="App">
<div>
<IncomeExpensesContainer
income={Income}
setIncome={setIncome}
totalExpenses={TotalExpensesAmount}
currencySymbol={Currency}
/>
</div>
组件文件:
interface Props {
income: string;
setIncome: (value: string) => void;
totalExpenses: number;
currencySymbol: string;
}
const IncomeExpensesContainer: React.FC<Props> = ({
income,
setIncome,
totalExpenses,
currencySymbol,
}: Props) => {
const [insertedValue, setInsertedValue] = useState<string>(income);
return (
<Grid container spacing={1} className="income-expenses-container">
<InputItem
onChange={setInsertedValue}
onBlur={setIncome}
title="Income"
type="number"
placeholder="Your income"
defaultValue={income}
/>
</Grid>
);
我在这里想念什么?
解决方案
提供附加信息后编辑
在组件中使用传递的道具:
const Component = (props) => {
return (
<InputItem
onChange={setInsertedValue}
onBlur={setIncome}
title="Income"
type="number"
placeholder="Your income"
defaultValue={props.income}
/>
}
推荐阅读
- python - 使用 Python Socket 发送文件:连接关闭太快
- java-bytecode-asm - 使用 ASM 重命名类时内部类的 NoClassDefFoundError
- mysql - 如何从两个表中检索数据?
- r - 在 ggplot R 中使用和调整 bbc 风格主题
- c++ - QDataStream 和 QByteArray wirh ByteOrder
- java - 为什么不接受 super(id)?
- pine-script - 松树脚本:不能使用变量作为输入的defval?
- react-native - React Native RazorPay android Undefined|Undefined 在点击支付按钮上显示
- python - 如果我们使用多个断言第一个断言失败,我应该如何继续我的脚本?
- reactjs - React 应用程序在 localhost 上运行,但在 github 或 heroku 上部署时出错。部署时没有错误