React.js拖放 - Drop上的无限循环
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React.js拖放 - Drop上的无限循环相关的知识,希望对你有一定的参考价值。
我有一个拖放方法的表,一切正常,除了Drop。因此,当我想将项目放入表格的单元格时,会出现由无限循环引起的错误。
如果有人能解释这个错误的原因,我将不胜感激。
import React, {Component} from 'react';
import { DropTarget } from 'react-dnd';
function collect(connect, monitor) {
return {
connectDropTarget: connect.dropTarget,
isOver: monitor.isOver,
item: monitor.getItem,
}
}
class DropCells extends Component {
state = {
tdValue: ""
};
render() {
const { connectDropTarget, isOver, item} = this.props;
const backgroundColor = isOver ? 'lightgreen' : 'white';
const dropped = isOver? this.setState({tdValue: this.props.item}): this.state.tdValue;
return connectDropTarget(
<td className="target" style={{ background: backgroundColor }}>
{dropped}
</td>
);
}
}
export default DropTarget('item', {}, collect)(DropCells);
答案
你可以在渲染函数中调用this.setState({tdValue: this.props.item})
。每次重新渲染组件时,它都会调用this.setState,这将触发另一个渲染。
以上是关于React.js拖放 - Drop上的无限循环的主要内容,如果未能解决你的问题,请参考以下文章
超过最大更新深度。使用 TimePickerInput onChange 事件 React.js 时的无限循环
Silverlight & Blend动画设计系列八:拖放(Drag-Drop)操作与拖放行为(DragBehavior)