- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用包 react-transition-group,我尝试在 CSSTransition 组件上使用 nodeRef Prop ,并在我的组件上添加了一个包装器,但我仍然收到有关 findDOMNode 的警告。
这是代码:
<CSSTransition
key={entry.id}
timeout={500}
classNames="timesheet-entry"
>
<TimesheetEntry
taskOptions={taskOptions || []}
deleteHandler={(event) => {
deleteHandler(event, entry.id.toString());
}}
data={entry}
dateChangeHandler={(date: Date) =>
dateChangeHandler(date, entry.id)
}
hoursChangeHandler={(event) => hoursChangeHandler(event, entry.id)}
taskCodeChangeHandler={(event, value) =>
taskCodeChangeHandler(event, value, entry.id)
}
/>
</CSSTransition>
TimesheetEntry 组件的代码:
function TimesheetEntry(props: TimesheetEntryProps) {
return (
<div>
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<KeyboardDatePicker
label="Date"
style={{ marginRight: '15px', height: '20px', marginTop: '-2px' }}
disableToolbar
variant="inline"
format="MM/dd/yyyy"
margin="normal"
value={props.data.date}
onChange={props.dateChangeHandler}
size="small"
KeyboardButtonProps={{
'aria-label': 'change date',
}}
/>
</MuiPickersUtilsProvider>
<Autocomplete
size="small"
style={{
width: 300,
display: 'inline-block',
marginRight: '15px',
}}
options={props.taskOptions}
getOptionLabel={(option) => option.name}
getOptionSelected={(option, value) => {
return option.id === value.id && option.name === value.name;
}}
onChange={props.taskCodeChangeHandler}
renderInput={(params) => (
<TextField {...params} label="Task" variant="outlined" />
)}
/>
<TextField
size="small"
style={{ marginRight: '15px', height: '20px' }}
label="Hours"
type="number"
inputProps={{ min: 0.5, step: 0.5 }}
onChange={props.hoursChangeHandler}
InputLabelProps={{
shrink: true,
}}
/>
<Button
style={{ marginRight: '15px' }}
variant="contained"
color="secondary"
size="small"
startIcon={<DeleteIcon />}
onClick={props.deleteHandler}
>
Delete
</Button>
</div>
);
}
export default TimesheetEntry;
我还在代码框
here 中进行了一些类似的代码设置。
最佳答案
实际上有两个不同的findDOMNode
CodeSandbox 演示中的警告:
react-transition-group
对于 TimesheetEntry
. react-transition-group
的间接使用通过 Material UI 的 Snackbar
零件。 TimesheetEntry
组件,但要正确实现
nodeRef
,每个元素都需要一个不同的 ref 对象,并且因为你不能在循环中调用 React 钩子(Hook)(参见
rules of hooks),你必须创建一个单独的组件:
const EntryContainer = ({ children, ...props }) => {
const nodeRef = React.useRef(null);
return (
<CSSTransition
nodeRef={nodeRef}
timeout={500}
classNames="timesheet-entry"
{...props}
>
<div ref={nodeRef}>
{children}
</div>
</CSSTransition>
);
};
TimesheetEntry
:
const controls: JSX.Element[] = entries.map((entry: entry, index: number) => {
return (
<EntryContainer key={entry.id}>
<TimesheetEntry
deleteHandler={event => {
deleteHandler(event, entry.id.toString());
}}
data={entry}
dateChangeHandler={(date: Date) => dateChangeHandler(date, entry.id)}
hoursChangeHandler={event => hoursChangeHandler(event, entry.id)}
taskCodeChangeHandler={(event, value) =>
taskCodeChangeHandler(event, value, entry.id)
}
/>
</EntryContainer>
);
});
EntryContainer
的 Prop 到
CSSTransition
,这是至关重要的一步,因为这些是由
TransitionGroup
传递的。 .
关于reactjs - 使用 React,在使用 react-transition-group 时,在 StrictMode 中不推荐使用 findDOMNode 作为警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62187461/
我正在尝试使用函数作为组件内的 prop,并且该组件是另一个组件的子组件。但该功能不起作用。?我可以知道为什么吗?这是我在控制台中收到的警告。 Warning: findDOMNode is depr
Draggable 包在严格模式下导致错误: Warning: findDOMNode is deprecated in StrictMode. findDOMNode waspassed an in
我试图用 material-ui 和 React 制作一个选择菜单 const SelectLevelButton = forwardRef((props, ref) => { const [st
我被指派修复一些失败的 Jest 测试。这是一个例子: 这是 checkboxGroup.spec.js: import React from 'react'; import ReactDOM fro
我有 /* @jsx React.DOM*/ var Login = React.createClass({ Validate: function(){ debugger;
我有一个使用 findDOMNode() 的旧代码。 这是我的代码,其中 someComponent1 和 Expand 已导入。 在这里,我有些怀疑我用 findDOMNode() 编写的代码是否工
我创建了一个 HOC 来监听其包装组件外部的点击,以便包装组件可以根据需要进行监听和 react 。 HOC 看起来像这样: const addOutsideClickListener = (Wrap
我正在使用 antd 并且看到此错误 findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of DO
我知道有React.findDOMNode(component).value/focus() 。我正在寻找所有可以与React.findDOMNode一起使用的方法. 例如,我有一个 标签,我尝试过
出于某种原因,我无法使用 React.findDOMNode 函数。浏览器提示类型错误,说 React.findDOMNode 不是函数。这是发生这种情况的代码: var React = requir
我正在使用 ReactJS 和 Flux 构建一个网络应用程序,我正在尝试使用 findDOMNode 方法获取当前 div 的节点,但出现下一个错误: Uncaught TypeError: Rea
我正在使用 react-bootstrap 中的工具提示覆盖,但在 StrictMode 中不推荐使用错误 findDOMNode。根据 documentation使用overlaytrigger的函
我目前正在 Jest 测试 React 组件,组件的内联样式会根据不同的 props 值而改变。 这是一个关于我想做的事情的例子: let firstChild = TestUtils.findRen
“ react ”:“^16.13.1” “ react 过渡组”:“^4.3.0” 大家好。 我遇到了 findDOMNode 警告,在互联网上找不
我不完全理解,但显然it isn't recommended to use findDOMNode() . 我正在尝试创建拖放组件,但我不确定应该如何访问组件变量中的引用。这是我目前拥有的示例: co
谁能告诉我两者有什么区别 React.findDOMNode(this.refs.email).value 和 this.refs.email.getDOMNode().value 他们在做同样的事情
我正在尝试研究如何使用 typescript 和 react js。我关注这个link我成功地安装了文件。这是 package.json { "name": "proj", "version"
我需要通过深层嵌套组件进行事件冒泡,我尝试做如下的事情 import {ReactDOM,render, unmountComponentAtNode} from 'react-dom';
我正在关注 React Tutorial并卡在如何使用 React.findDOMNode 上. 这是我的代码: export class CommentForm extends React.Comp
大家好,我只是想在路由器转换期间使用 Refs 来定位组件中的元素。目前,来自 React Transition Group 的 onEnter、onExit 和 addEndListener 事件已
我是一名优秀的程序员,十分优秀!