const [firstName, setFirstName] = useState(null)
useEffect(() => {
if (props.profile && props.profile.profile) {
setFirstName(props.profile.first_name)
}
})
return (
<div>
<CustomTextField
className={classes.InputField}
variant="outlined"
name="firstname"
type="text"
fullWidth
placeholder=""
onChange={e => setFirstName(e.target.value)}
value={firstName}
/>
</div>
)
这里我使用的是react hooks状态
在这里,我试图改变来自API的默认值。但是,我不能在改变方法上改变。
谢谢
您不需要使用onchange
或useEffect
来设置默认值,只需使用CustomTextField
和usestast
中给出的道具来设置值
:
import { Input } from "@material-ui/core";
import "./styles.css";
import * as React from "react";
export function CustomTextField(props) {
const [firstName, setFirstName] = React.useState(props.firstName);
return (
<Input
onChange={(e) => {
setFirstName(e.target.value);
}}
variant="outlined"
name="firstname"
type="text"
value={firstName}
/>
);
}
export default function App() {
return <CustomTextField firstName="Kiran" />;
}
问题内容: 我是React和REDUX的新手,我只是开发了一个简单的react应用程序,现在我遇到了一个问题,当我在组件中渲染输入元素时,如果我将元素设置为“值”,它将变为只读,但是如果我将其设置为重新设置状态时,“ defaultValue”上的值将永远不会再更新。 这是我的代码: 然后我发现是否通过添加输入元素而对此做出错误 ,它可以正常工作(它在props或state更新时更新,并且我可以重
我通常使用getBoundingClientRect()。宽度当开发一个Swiper组件使用反应挂钩,但在一些例子getBoundingClientRect()。宽度返回0。 我在useEffect函数中使用了setTimeout,效果很好; 下面是简单的swiper代码演示: 简单swiper演示代码
我发现有几种方法可以用钩子处理用户的文本输入。用钩子处理输入的更好或更合适的方法是什么?你会用哪一种? 1)处理输入的最简单的钩子,但是你有更多的字段,你必须写更多重复的代码。 活动: 2) 与上面的示例类似,但具有动态键名 活动: 3) 作为的替代方案,正如ReactJS文档中所述,通常比更可取。 活动: 4) 将返回一个回调的备忘录版本,该版本仅在其中一个依赖项发生更改时才会更改。 活动:
我有问题与使用useReucer与输入。我试图在这里使用受控输入,但我一直收到错误;受控输入是不受控制的 从“React”导入React,{useReducer,useffect}; 从“axios”导入axios; 常量初始状态={ }const reducer=(状态、操作)= }Const ReucerFetchdata = () = } 导出默认值
CodeSandBox:https://codesandbox.io/embed/react-table-editable-content-ggvcy 当试图处理React表中的输入时,我的输入失去焦点,因此一次只能键入1个字符。 如何修复我的渲染周期,以允许输入? 编辑:我不小心用工作版本的代码更新了沙盒,尽管它还有另一个bug:如何在刷新更新期间捕获由于焦点模糊更改而导致的react事件?
查看图像以供参考。 我是Java的初学者。