Javascript 如何修复react dnd中DragLayer组件的Flow 0.80.0错误?
我将Javascript 如何修复react dnd中DragLayer组件的Flow 0.80.0错误?,javascript,flowtype,Javascript,Flowtype,我将flow bin从0.54.0更新为0.80.0,现在我看到react dnd库中出现了一些新的流错误。一个例子是DragLayer高阶组件 代码: //MyCustomDragLayer.jsx // ---------------------------------------- 从'react dnd'导入{DragLayer} 类MyCustomDragLayer扩展组件{ // ... } 导出默认DragLayer(监视器=>({ 项:monitor.getItem(), ite
flow bin
从0.54.0
更新为0.80.0
,现在我看到react dnd
库中出现了一些新的流错误。一个例子是DragLayer
高阶组件
代码:
//MyCustomDragLayer.jsx
// ----------------------------------------
从'react dnd'导入{DragLayer}
类MyCustomDragLayer扩展组件{
// ...
}
导出默认DragLayer(监视器=>({
项:monitor.getItem(),
itemType:monitor.getItemType(),
initialOffset:monitor.getInitialSourceClientOffset(),
currentOffset:monitor.getSourceClientOffset(),
initialClientOffset:monitor.getInitialClientOffset(),
delta:monitor.getDifferenceFromInitialOffset(),
IsDraging:monitor.IsDraging(),
}))(MyCustomDragLayer)
//不同文件中的render()函数
// ----------------------------------------
从“/MyCustomDragLayer.jsx”导入DragLayer
流量错误:
错误┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ components/foo/bar.jsx:499:10
无法创建DragLayer元素,因为:
•props[1]中缺少属性currentOffset,但存在于对象文字[2]中。
•道具[1]中缺少属性增量,但存在于对象文字[2]中。
•道具[1]中缺少属性initialClientOffset,但存在于对象文字[2]中。
•道具[1]中缺少属性initialOffset,但存在于对象文字[2]中。
•道具[1]中缺少属性IsDraging,但存在于对象文字[2]中。
• ... 还有2个错误。
components/foo/index.jsx
496│ }}
497│ />
498│
[1] 499│
506│
components/foo/bar.jsx
[2] 410│ 导出默认DragLayer(监视器=>({
411│ 项:monitor.getItem(),
412│ itemType:monitor.getItemType(),
413│ initialOffset:monitor.getInitialSourceClientOffset(),
414│ currentOffset:monitor.getSourceClientOffset(),
415│ initialClientOffset:monitor.getInitialClientOffset(),
416│ delta:monitor.getDifferenceFromInitialOffset(),
417│ IsDraging:monitor.IsDraging(),
418│ }))(MyCustomDragLayer)
如何修复此流错误?是的,我在类似的react dnd 0.79.1问题上使用了$FlowFixMe(不完全相同),因为我无法解决它。如果你也无法解决,可能是某个地方的错误
很抱歉,没有太大帮助,只是提供了可能不是您的备份。谢谢,是的,我可能需要添加$FlowFixMe并在将来尝试新版本。打开一些关于流、流类型和响应dnd repos的问题可能也是个好主意。
// MyCustomDragLayer.jsx
// ----------------------------------------
import { DragLayer } from 'react-dnd'
class MyCustomDragLayer extends Component<Props> {
// ...
}
export default DragLayer(monitor => ({
item: monitor.getItem(),
itemType: monitor.getItemType(),
initialOffset: monitor.getInitialSourceClientOffset(),
currentOffset: monitor.getSourceClientOffset(),
initialClientOffset: monitor.getInitialClientOffset(),
delta: monitor.getDifferenceFromInitialOffset(),
isDragging: monitor.isDragging(),
}))(MyCustomDragLayer)
// render() function in a different file
// ----------------------------------------
import DragLayer from './MyCustomDragLayer.jsx'
<DragLayer
{...{
prop_one,
prop_two,
// etc.
}}
/>
Error ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ components/foo/bar.jsx:499:10
Cannot create DragLayer element because:
• property currentOffset is missing in props [1] but exists in object literal [2].
• property delta is missing in props [1] but exists in object literal [2].
• property initialClientOffset is missing in props [1] but exists in object literal [2].
• property initialOffset is missing in props [1] but exists in object literal [2].
• property isDragging is missing in props [1] but exists in object literal [2].
• ... 2 more errors.
components/foo/index.jsx
496│ }}
497│ />
498│
[1] 499│ <DragLayer
500│ {...{
501│ prop_one,
502│ prop_two,
503│ // etc.
504│ }}
505│ />
506│
components/foo/bar.jsx
[2] 410│ export default DragLayer(monitor => ({
411│ item: monitor.getItem(),
412│ itemType: monitor.getItemType(),
413│ initialOffset: monitor.getInitialSourceClientOffset(),
414│ currentOffset: monitor.getSourceClientOffset(),
415│ initialClientOffset: monitor.getInitialClientOffset(),
416│ delta: monitor.getDifferenceFromInitialOffset(),
417│ isDragging: monitor.isDragging(),
418│ }))(MyCustomDragLayer)