相关疑难解决方法(0)

打字稿:反应事件类型

React事件的正确类型是什么.最初我只是any为了简单起见而使用.现在,我正在努力清理并避免any完全使用.

所以用这样一个简单的形式:

export interface LoginProps {
  login: {
    [k: string]: string | Function
    uname: string
    passw: string
    logIn: Function
  }
}
@inject('login') @observer
export class Login extends Component<LoginProps, {}> {
  update = (e: React.SyntheticEvent<EventTarget>): void => {
    this.props.login[e.target.name] = e.target.value
  }
  submit = (e: any): void => {
    this.props.login.logIn()
    e.preventDefault()
  }
  render() {
    const { uname, passw } = this.props.login
    return (
      <div id='login' >
        <form>
          <input
            placeholder='Username'
            type="text"
            name='uname'
            value={uname}
            onChange={this.update}
          />
          <input
            placeholder='Password'
            type="password" …
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs

91
推荐指数
8
解决办法
10万
查看次数

TypeScript中的EventTarget类型中不存在属性"value"

所以下面的代码是在Angular 4中,我无法弄清楚为什么它没有像预期的那样工作.

这是我的处理程序的片段:

onUpdatingServerName(event: Event) {
  console.log(event);
  this.newserverName = event.target.value; //this wont work
}
Run Code Online (Sandbox Code Playgroud)

HTML元素:

<input type="text" class="form-control" (input)="onUpdatingServerName($event)">
Run Code Online (Sandbox Code Playgroud)

代码给了我错误:

'EventTarget'类型中不存在属性'value'.

但正如可以看出console.log,价值确实存在于event.target.

javascript typescript angular

80
推荐指数
9
解决办法
4万
查看次数

'EventTarget'类型上不存在Angular属性'parentNode'

我想要达到某个元素的父级:

let t = e.target.parentNode

但我有这个错误: Property 'parentNode' does not exist on type 'EventTarget'

我试过<Element>e.target.parentNode但这也没有给我任何结果.有人可以帮忙吗?

javascript parent angularjs

8
推荐指数
1
解决办法
3389
查看次数

我如何修复“[ts] 属性 'getAttribute' 在类型 'EventTarget' 上不存在”

我正在尝试创建一个 onClick 事件类型以在使用 TypeScript 时捕获 React 中的目标属性。但我收到错误“[ts] 属性 'getAttribute' 在类型 'EventTarget' 上不存在。” 任何人都可以帮助提供有关如何解决此问题的最佳实践的见解吗?

我尝试为 event.target 部分使用另一个辅助函数。这样我就可以排版这部分,以及这个函数中的 getAttribute 部分。但是,有人告诉我这不是最佳实践和错误方法。

const Option = (props: OptionProps) => {

  const HandleOptionChange = (event: React.MouseEvent<HTMLLIElement>) => {
    return props.onOptionChange(event.target.getAttribute('value'));
  }

  return (
    <li
      key={props.key}
      value={JSON.stringify(props.word)}
      onClick={HandleOptionChange}
    >
      {props.word.value}
    </li>
  )
}
Run Code Online (Sandbox Code Playgroud)

ts 错误信息:

[ts] 类型“EventTarget”上不存在属性“getAttribute”。任何

events typescript reactjs

3
推荐指数
2
解决办法
1734
查看次数

EventTarget 无法访问 classList

我试图让一个扩展面板只有在点击箭头时才展开,但是当我尝试编译它时,这个功能

private _isExpansionIndicator(target: EventTarget): boolean {
    const expansionIndicatorClass = 'mat-expansion-indicator';
    return (target.classList && target.classList.contains(expansionIndicatorClass) );
  } 
Run Code Online (Sandbox Code Playgroud)

返回以下错误:

"Property 'classList' does not exist on type 'EventTarget'"
Run Code Online (Sandbox Code Playgroud)

任何线索我如何克服这个错误,或者你知道任何其他解决方法来实现相同的功能吗?

我让它在 stackblitz 上工作,没有错误...... https://stackblitz.com/edit/basic-material-e6sh1r

angular-material angular

3
推荐指数
1
解决办法
588
查看次数