我正在尝试创建一个由react-dndframework(?)启用DnD的简单树视图React组件。我尝试了react-sortable-tree,但是由于我现在不记得的原因放弃了它(必须对其进行自定义,但是代码对我来说太复杂了)。到目前为止,我有两个主要组件:树节点本身和包含两个div的的drop overlay,用于在之前和之后进行删除。该节点的编码如下:
class Node extends Component {
....
render() {
const {
data,
depth,
is_group,
connectDragSource
} = this.props;
...
for (let kid_id of kids)
childElements.push(
<ConnectedQuestionNode
id={kid_id}
is_group={areChildrenGroups}
depth={depth + 1}
key={kid_id}
/>);
return (
<Fragment>
{connectDragSource(<div
className="tree-row"
style = {{ left: treeBlockIndent * depth + 'px' }}
>
{prefix}
<div className="tree-row-title">
{data.title}
</div>
<DropOverlay
id={data.id}
nodeIsGroup={is_group}
nodeHasSubgroups={hasSubgroups}
moveActionCreator={moveQuestion}
moveGroupActionCreator={moveQuestionGroup}
nodeItemType={ItemTypes.QUESTION_NODE}
/>
</div>)}
{childElements}
</Fragment>
);
}
}
Run Code Online (Sandbox Code Playgroud)
之后,将其connect编入ConnectedQuestionNode(此处不相关)。这里是 …
这是Django 的身份验证模型(UserManager) 中的一段代码:
def create_superuser(self, username, email, password, **extra_fields):
extra_fields.setdefault('is_staff', True)
extra_fields.setdefault('is_superuser', True)
if extra_fields.get('is_staff') is not True:
raise ValueError('Superuser must have is_staff=True.')
if extra_fields.get('is_superuser') is not True:
raise ValueError('Superuser must have is_superuser=True.')
return self._create_user(username, email, password, **extra_fields)
Run Code Online (Sandbox Code Playgroud)
为什么要设置一个键值对并在之后立即检查它?在什么情况下会满足这些条件?