下面是我的父组件,它包含一个循环的多个输入。如何选择一个输入
来聚焦?在这种情况下,我必须创建动态ref
吗?
class TestRef extends React.Component {
ref = React.createRef();
state = {
data: [
{
name: "abc"
},
{ name: "def" }
]
};
focusInput = () => this.ref.current.focus();
render() {
return (
<div>
{this.state.data.map(o => {
return <Hello placeholder={o.name} ref={this.ref} />;
})}
<button onClick={this.focusInput}>focus input 1</button>
<button onClick={this.focusInput}>focus input 2</button>
</div>
);
}
}
您可以使用回调refs生成每个输入的动态ref并将其存储在数组中。现在您可以使用ref:
const Hello = React.forwardRef((props, ref) => <input ref={ref} />);
class Button extends React.Component {
onClick = () => this.props.onClick(this.props.id);
render() {
return (
<button onClick={this.onClick}>{this.props.children}</button>
);
}
}
class TestRef extends React.Component {
state = {
data: [
{
name: "abc"
},
{ name: "def" }
]
};
inputRefs = [];
setRef = (ref) => {
this.inputRefs.push(ref);
};
focusInput = (id) => this.inputRefs[id].focus();
render() {
return (
<div>
{this.state.data.map(({ name }) => (
<Hello
placeholder={name}
ref={this.setRef}
key={name} />
))}
<Button onClick={this.focusInput} id={0}>focus input 1</Button>
<Button onClick={this.focusInput} id={1}>focus input 2</Button>
</div>
);
}
}
ReactDOM.render(<TestRef />, document.getElementById("root"));
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<div id="root"></div>
有一个名为Avro-Tools的工具,它随Avro一起提供,可以用来在JSON、Avro-Schema(.avsc)和二进制格式之间进行转换。但它不能用于循环引用。 我们有两个文件: > 循环.avsc(由Avro生成) json(由jackson生成,因为它有循环引用,Avro不喜欢这样)。 通告.AVSC circular.json 在上面运行avro-tools的命令 Java-jar av
问题内容: 我正在尝试在某些类图中围绕类生成运行时包装,但是当图中有一个循环时,我不知道如何处理这种情况。想象有一个类A的字段类型为B,但是类型B的字段类型为A。我想生成类A’和B’,以便类A’的字段类型为B’,而B’的字段类型为B。 A’类型的字段。在字节伙伴中,方法“ defineField”可以接收类型定义的参数。我认为必须有一种方法可以为尚未定义的类型定义TypeDefinition,但我
问题内容: 我最近一直在使用nodejs,并且仍然要处理模块系统,因此很抱歉这是一个明显的问题。我想要大致如下的代码: a.js (主文件与节点一起运行) b.js 我的问题似乎是我无法从ClassB实例中访问ClassA实例。 有没有正确/更好的方法来构造模块来实现我想要的?是否有更好的方式在模块之间共享变量? 问题答案: 尽管node.js确实允许循环依赖,但正如您所发现的那样,它可能很杂乱,
我最近一直在使用nodejs,并且仍然在掌握模块系统,所以如果这是一个明显的问题,请原谅。我想要大致如下的代码: a.js(主文件与节点一起运行) b.js 我的问题似乎是我无法从ClassB的实例中访问ClassA的实例。 有没有正确/更好的方法来构建模块以实现我想要的?有没有更好的方法在模块之间共享变量?
问题内容: 我试图用NodeJS编写代码,从外部API抓取数据,然后使用Mongoose在MongoDB中填充它们。在这之间,我将检查该特定对象是否已经存在于Mongo中。下面是我的代码。 我的问题是,由于NodeJS回调是并行的,因此不会按顺序调用它。我的最终结果将是这样的: 呼叫报告API console.log(长度)= 100 ^^^^^^^^^^^^^^^^^^^^^^^^^ conso
这里是一个以圆圈为单位的交叉网格,当前为5x5。我试图得到一行5,下面是一行4,然后是3,然后是2等等。我试着改变for循环和值,但什么都不起作用。我需要使用行和列吗? 谢谢!