zu füllen Ich möchte OnChange der Eingabe Füllvariable (ich brauche es für den Namen der Stadt in api). Aber onChange es ständig ruft: auf dieser LinieUndefined Variable beim Versuch, Variable mit onChange
<input name={props.name} type={props.inputType} value={props.value} placeholder={props.placeholder} onChange={this.handleCityName.bind(this)}/>
Ich versuche, „Uncaught Typeerror kann nicht Eigentum‚handleCityName‘undefinierter lesen“ App redux zu übertragen.
Dies ist der Rest des Codes
Form_container.js
import React, {Component} from 'react';
import SearchBar from '../components/SearchBar';
import {connect} from "react-redux"
import {updateInfo} from "../actions/weather-apiActions";
import {handleCityName} from "../actions/weather-apiActions";
@connect((store) => {
return {
cityName: store.cityName.cityName,
nameOfCity:store.nameOfCity.nameOfCity,
weatherDescription:store.weatherDescription.weatherDescription,
windSpeed:store.windSpeed.windSpeed,
temperature:store.temperature.temperature,
maxTemperature:store.maxTemperature.maxTemperature,
minTemperature:store.minTemperature.minTemperature,
}
})
class FormContainer extends Component {
handleFormSubmit(e) {
e.preventDefault();
this.props.dispatch(updateInfo());
}
handleCityName(value){
this.props.dispatch(handleCityName(value));
}
render() {
return (
<div>
<form onSubmit={this.handleFormSubmit.bind(this)}>
<label>{this.props.label}</label>
<SearchBar
name="CityName"
type="text"
value={this.props.cityName}
placeholder="search"
onChange={this.cityName.bind(this)}
/>
<button type="submit" className="" value='Submit' placeholder="Search">Search</button>
</form>
</div>
);
}
}
export {FormContainer};
Searchbar.js
import React from 'react';
const SearchBar = (props) => (
<div>
<label>{props.label}</label>
<input name={props.name} type={props.inputType} value={props.value} placeholder={props.placeholder} onChange={this.handleCityName.bind(this)}/>
</div>
);
export default SearchBar;
Aktion
export function handleCityName(value) {
return {
type:"HANDLE_CITY_NAME",
results:{
cityName: value,
}
}
}
Reducer
export default function reducer(state={
cityName: "",
}, action) {
switch (action.type){
case "HANDLE_CITY_NAME": {
return {...state,
cityName: action.value,
}
}
}
return state;
}
was würden Sie empfehlen, wie man es schreibt, weil ich immer noch meinen Kopf einwickeln muss, wie redux richtig zu verwenden ist – OunknownO
Sie sollten irgendwo Ihre Werte fromee Eingabe erhalten und es auf irgendeiner Variablen behalten. Und bei Call-Aktion einreichen. In Ihrer Variante rufen Sie nach dem Schreiben eines letzteren eine Aktion auf. Zum Beispiel Wort Andrew ruft yor Aktion handleCityName 6 Mal (6 Laters), dies wird Zustand 6 mal aktualisieren und 6-mal Rendern Sie Ihre Komponente – Andrew