私はこのチュートリアルと一緒に従うことをしようとしていますに書き込む方法:https://www.viget.com/articles/building-a-multi-step-registration-form-with-reactが反応 - 構文 - ES6
このチュートリアルでは、ES6を使用していないので、私は立ち往生していますので、私は、違いを学ぶことをしようとしていますチュートリアル文書に問題がある場合は、これと同じ時間を計算してください。
このコードブロックでは構文エラーが発生します。それは、私が '、'を持っているはずの '、'を使ったと言います。それがES6に関係しているかどうかはわかりません。私はカンマを置き換えようとしましたが、同じエラーが発生します。
saveValues: function(field_value) {
return function() {
fieldValues = assign({}, fieldValues, field_value)
}.bind(this)()
},
これは間違っていますか?
完全なページは、現在のように設定されて:
import React from 'react';
import ReactDOM from 'react-dom';
import { Link } from 'react-router-dom';
var AccountFields = require('./AccountFields');
var Confirmation = require('./Confirmation');
var Success = require('./Success');
var SurveyFields = require('./SurveyFields');
var assign = require('object-assign');
var fieldValues = {
name :null,
email :null,
password :null,
organisation :null,
interest :[]
}
// import { Button } from 'react-bootstrap';
// import * as ReactBootstrap from 'react-bootstrap'
class Registration extends React.Component {
constructor(props) {
super(props);
this.state = function() {
return {
step: 1
}
},
saveValues: function(field_value) {
return function() {
fieldValues = assign({}, fieldValues, field_value)
}.bind(this)()
},
nextStep: function() {
this.setState({
step : this.state.step + 1
})
},
previousStep: function() {
this.setState({
step : this.state.step - 1
})
},
submitRegistration: function() {
switch (this.state.step) {
case 1:
return <AccountFields fieldValues={fieldValues}
nextStep={this.nextStep}
previousStep={this.previousStep}
saveValues={this.saveValues}
/>
case 2:
return <SurveyFields fieldValues={fieldValues}
nextStep={this.nextStep}
previousStep={this.previousStep}
saveValues={this.saveValues}
/>
case 3:
return <Confirmation fieldValues={fieldValues}
nextStep={this.nextStep}
submitRegistration={this.submitRegistration}
/>
case 4:
return <Success fieldValues={fieldValues} />
}
},
render() {
return (
<main>
<span className="progress-step"> Step {this.state.step}</span>
<progress className="progress"></progress>
{this.showStep()}
</main>
)
}
export.default = Registration;
UPDATED ATTEMPT
import React from 'react';
import ReactDOM from 'react-dom';
import { Link } from 'react-router-dom';
var AccountFields = require('./AccountFields');
var Confirmation = require('./Confirmation');
var Success = require('./Success');
var SurveyFields = require('./SurveyFields');
var assign = require('object-assign');
var fieldValues = {
name :null,
email :null,
password :null,
organisation :null,
interest :[]
}
// import { Button } from 'react-bootstrap';
// import * as ReactBootstrap from 'react-bootstrap'
class Registration extends React.Component {
constructor(props) {
super(props);
this.state = function() {
return {
step: 1
}
}
saveValues(field_value) {
return function() {
fieldValues = assign({}, fieldValues, field_value)
}.bind(this)()
}
nextStep() {
this.setState({
step : this.state.step + 1
})
}
previousStep() {
this.setState({
step : this.state.step - 1
})
}
submitRegistration() {
switch (this.state.step) {
case 1:
return <AccountFields fieldValues={fieldValues}
nextStep={this.nextStep}
previousStep={this.previousStep}
saveValues={this.saveValues}
/>
case 2:
return <SurveyFields fieldValues={fieldValues}
nextStep={this.nextStep}
previousStep={this.previousStep}
saveValues={this.saveValues}
/>
case 3:
return <Confirmation fieldValues={fieldValues}
nextStep={this.nextStep}
submitRegistration={this.submitRegistration}
/>
case 4:
return <Success fieldValues={fieldValues} />
}
}
render() {
return (
<main>
<span className="progress-step"> Step {this.state.step}</span>
<progress className="progress"></progress>
{this.showStep()}
</main>
)
}
}
}
export.default = Registration;
[クラス内のメソッドの定義](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#Prototype_methods)の構文は次のとおりです。それは ':'を伴わない。また、クラス定義のために '}'が閉じていないようです。 – 4castle
ありがとう@ 4castle - :チュートリアルから来た - それは間違っていると思いますか? saveValuesクラスに欠落していることを意味しますか?そのブロックには{}の開閉数が等しくあります。申し訳ありませんが、明らかに、私は学ぶのが遅いですが、出発点をどこで見つけるかは不明です。 – Mel
私はあなたの更新されたコードをWebstormに貼り付けました。コンストラクタの最後に "}"がありません(... { – Swards