要解决BlueprintJS / React中点击事件无法获取TagInput > Tag的值的问题,你可以使用ref来访问TagInput组件,并通过其内部state来获取Tag的值。
以下是一个示例代码:
import React from 'react';
import { TagInput } from '@blueprintjs/core';
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.tagInputRef = React.createRef();
}
handleButtonClick = () => {
const tagInput = this.tagInputRef.current;
const tags = tagInput.state.values;
console.log(tags);
};
render() {
return (
);
}
}
export default MyComponent;
在这个示例中,我们使用了React.createRef()
来创建一个ref,并将其传递给TagInput组件的ref属性。然后,在handleButtonClick
方法中,我们通过tagInputRef.current
访问TagInput组件的实例,并使用其内部state中的values
属性来获取Tag的值。
当点击"获取Tag的值"按钮时,handleButtonClick
方法被调用,并打印Tag的值。
请注意,这种使用ref来访问内部状态的方法可能会有一些限制,因为它依赖于内部组件的实现细节。如果BlueprintJS / React在未来的版本中更改了TagInput组件的实现方式,这种解决方法可能会失效。在使用时请谨慎考虑。