1
handleSubmit関数のthis.refsにアクセスしているときに問題が発生しています。this.refsは、Reactの空のオブジェクトです
私のコンテナは、次のようになります。私は、送信ボタンをクリックすると
import React, { Component } from 'react'
import { Link } from 'react-router'
import { connect } from 'react-redux'
import { getSomeStuff } from '../actions/someApiActions’
class MyClass extends Component {
componentWillMount() {
this.props.dispatch(getSomeStuffFromApi(this.props.params.cuid))
}
handleSubmit =() => {
console.log(this.refs) // always console logs an empty object {}
}
render() {
if(!this.props.results.item){
return (
<div>... loading …</div>
)
}
const { name } = this.props.results.item.stuff
return (
<div>
<p><input ref="name" defaultValue={ name }/></p>
<button type="submit" onClick={this.handleSubmit}>Update</button>
</div>
)
}
}
const mapStateToProps = (state) => {
return {
results: state.getSomeStuff
}
}
export default connect(mapStateToProps)(MyClass)
、handleSubmitは常に(入力が正しくHTMLでレンダリングされていても)、空のオブジェクトをログに記録します。私は問題なしでcomponentDidUpdateメソッドのthis.refsにアクセスできることに気付きました。
なぜthis.refsにhandleSubmitでアクセスできないのですか?
:https://jsfiddle.net/free_soul/49bdw76z
私はこれにそれを変更しなければなりませんでした/ –
@mrguestいくつかのコードを削除しましたか?もしそうなら、ここで私の答えをチェックしてくださいhttp://stackoverflow.com/a/40708397/1785635 – abhirathore2006
@ abhirathore2006私はコードを削除していない...コンポーネントの親で問題がありますか? (これは{this.props.children}を介して反応ルータ経由でレンダリングされます) –