Javascript 对象作为React子对象无效,Redux
我有一个ReactJavascript 对象作为React子对象无效,Redux,javascript,reactjs,redux,react-redux,render,Javascript,Reactjs,Redux,React Redux,Render,我有一个ReactMovie类,允许您输入movieName。您还可以查看您输入的所有电影 我现在正在用Redux更新我的应用程序,但当我想显示列表时遇到了问题 以下是在React中已经起作用的内容: import React from 'react'; import { render } from 'react-dom'; class App extends React.Component { state = { favorite: false, movie
Movie
类,允许您输入movieName
。您还可以查看您输入的所有电影
我现在正在用Redux更新我的应用程序,但当我想显示列表时遇到了问题
以下是在React中已经起作用的内容:
import React from 'react';
import { render } from 'react-dom';
class App extends React.Component {
state = {
favorite: false,
movieName: "",
movies: [],
filter: true,
};
handleChange = (event) => {
event.target.name === "favorite"
? this.setState({[event.target.name]: event.target.checked})
: this.setState({[event.target.name]: event.target.value});
}
handleSubmit = (event) => {
event.preventDefault();
this.addMovie();
}
addMovie = () =>{
this.setState({
movies: [...this.state.movies, {name: this.state.movieName, favorite: this.state.favorite }]
});
}
listFavoriteMovies = () => (
<ul>
{this.state.movies
.filter( movie => movie.favorite )
.map( movie => <li>{movie.name}</li>)}
</ul>
);
listAllMovies = () => (
<ul>
{this.state.movies
.map(movie => <li>{movie.name}</li>)}
</ul>
);
changeFilter = () =>
this.setState( prevState => ( {
filter: !prevState.filter,
}))
render() {
return (
<div>
<form onSubmit={this.handleSubmit}>
<label>
Movie name:
<input name="movieName" type="text" onChange={this.handleChange} />
Favorite?
<input name="favorite" type="checkbox" onChange={this.handleChange} />
</label>
<input type="submit" value="Submit" />
</form>
<ul>
{
this.state.filter
? this.listFavoriteMovies()
: this.listAllMovies()
}
</ul>
<button onClick={this.changeFilter}>Click toggle for all/favorites.</button>
</div>
);
}
}
render(<App />, document.getElementById('root'));
及
??如何操作?由于您使用的是redux,您应该将react组件与redux连接,以便访问redux状态,即redux中的应用程序级电影状态。 您的顶级js(app.js)还应该实现store provider来保存应用程序状态 您应该尝试将应用程序状态映射到props(mapStateToProps),并将元素设置为从props映射状态 你可以提供一些好的参考资料 希望能有帮助
connect()
将组件连接到存储区后,只能使用this.props.state\u variable\u name
从存储区访问这些数据我想说的是,你应该听这篇文章来简单地了解redux,这是一个非常简单的概念 不要将React方式与Redux方式混合使用。您以错误的方式使用分派,并尝试将其与渲染混合。如果你是个新手,不能做出反应,就多玩一点反应吧。然后,在掌握React之后,在尝试编写一些东西之前,请遵循Redux文档和一些教程。我可以在这里为您编写一些Redux代码,就像我以前为React编写的一样,但这对您不好。我是作为像你这样的学习者说的。我对React和Redux不是很有经验,但我已经按照我告诉你的那样学会了一切。
listAllMovies = () => (//
<ul>
{this.props.dispatch({ type: 'LIST_ALL_MOVIES' })}
</ul>
);
handleChange = (event) => {//?
event.target.name === "favorite"
? this.setState({[event.target.name]: event.target.checked})
: this.setState({[event.target.name]: event.target.value});
}
changeFilter = () => //
this.setState( prevState => ( {
filter: !prevState.filter,
}))