私は同じエラーが議論されたsimillar topicを読みましたが、私の問題は解決しませんでした。findDOMNode()とgetDOMNode()は関数ではありません
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
class SearchBox extends Component {
render() {
return (
<form onSubmit = {this.handleClick.bind(this)}>
<input
ref="search"
type="text"
placeholder="username..."/>
<input
type="submit"
value="Search" />
</form>
);
}
handleClick(e) {
e.preventDefault();
let username = this.refs.search.findDOMNode().value;
this.props.fetchUser(username);
this.refs.search.findDOMNode().value = '';
}
fetchUser(username) {
let url = `https://api.github.com/users/${username}`;
this.fetchApi(url);
}
fetchApi(url) {
fetch(url)
.then((res) => res.json())
.then((data) => {
this.setState({
username: data.login,
image: data.avatar_url,
name: data.name,
location: data.location,
followers: data.followers,
following: data.following
})
})
}
}
export default SearchBox;
コンポーネントをレンダリングした後、私は次のエラーを取得:
TypeError: this.refs.search.findDOMNode is not a function
20 |
21 | handleClick(e) {
22 | e.preventDefault();
> 23 | let username = this.refs.search.findDOMNode().value;
24 |
25 | this.props.fetchUser(username);
26 | this.refs.search.findDOMNode().value = '';
私もfindDOMNode()とgetDOMNodeを()メソッド使用してみましたが、しかし、運なしで、私はシンプルなアプリのコンポーネントを持っています。どちらも同じエラーを引き起こします。何か案は?
'this.refs.search.value'だけで値を取得できるか、' onChange' propで状態値を設定して使用できます。 – bennygenel