2016-12-22 3 views
0

Я пытаюсь изучить, как использовать машинописный текст и реагировать на js. Я следую этому link, и я успешно устанавливаю файлы. вот пакет.jsonСвойство 'findDOMNode' не существует в типе 'typeof React'

{ 
    "name": "proj", 
    "version": "1.0.0", 
    "description": "hello world", 
    "main": "index.js", 
    "scripts": { 
    "test": "sample" 
    }, 
    "author": "", 
    "license": "ISC", 
    "dependencies": { 
    "@types/react": "^0.14.55", 
    "@types/react-dom": "^0.14.19", 
    "react": "^15.4.1", 
    "react-dom": "^15.4.1" 
    }, 
    "devDependencies": { 
    "awesome-typescript-loader": "^3.0.0-beta.17", 
    "source-map-loader": "^0.1.5", 
    "typescript": "^2.1.4", 
    "webpack": "^1.14.0", 
    "todomvc-app-css": "^2.0.0", 
    "todomvc-common": "^1.0.0" 
    } 
} 

и вот код моего tsx.

import * as React from "react"; 
import * as ReactDOM from "react-dom"; 

export interface ItemProps { todoItem:string; getIndex:number; onDelete:any; onEdit:any; onChange:number} 
interface ItemState {clickEdit:string;text:string} 


export class TodoItem extends React.Component<ItemProps, ItemState> { 

    public state:ItemState; 


    constructor(props:ItemProps){ 
     super(props); 
     this.handleChange = this.handleChange.bind(this); 
     this.handleSubmit = this.handleSubmit.bind(this); 
     this.state = {clickEdit:"",text:this.props.todoItem}; 
    } 
    public handleChange(e) { 
     this.setState({text: e.target.value}); 
    } 
    public handleSubmit(e){ 

     this.setState({clickEdit:""}); 
    } 
    public delete(){ 
     this.props.onDelete(this.props.getIndex); 
    } 
    public edit(){ 

     var node = React.findDOMNode<HTMLInputElement>(this.refs["editField"]); 
     node.focus(); 
     this.setState({clickEdit:"editing"}); 
     this.props.onEdit(this.props.getIndex); 
    } 
    public render() { 

     return ( 
       <li className={this.state.clickEdit}> 
        <div className="view">       
         <label onDoubleClick={e => this.edit()}>{this.props.todoItem}</label> 
         <button className="destroy" onClick={e => this.delete()}></button> 
        </div> 
        <input ref="editField" className="edit" onBlur={e => this.handleSubmit(e)} value={this.state.text} onChange={e => this.handleChange(e)} autoFocus={true} /> 
       </li> 
       ); 
    } 
} 

Я не знаю, почему я не могу использовать findDOMNode. Я уже импортирую РЕАКТ. Пропустить что-то в своих файлах или есть что-то, что мне нужно установить

ответ

0

попробуйте import ReactDOM from 'react-dom'; ReactDOM.findDOMNode().

+0

Я пробую этот. но это не работает. Я думаю, что это еще одна проблема. благодаря – user3818576

Смежные вопросы