- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我刚开始玩 react/redux。我只想输入一些文本并点击提交,然后将其传递给另一个组件,该组件将显示输入的内容。
我知道我可以从 A 点到 B 点获取数据,因为如果我使用 store.subscribe,我就可以访问状态,而且它总是准确的。我正在尝试使用 mapStateToProps 但我没有任何运气。
我没有使用 mapDispatchToProps,所以这可能是个问题?我似乎找不到一个很好的简单例子。 mapStateToProps 似乎也只在我刷新页面时运行(使用 webpack-dev-server),因为它只在页面加载时记录一次,再也不会记录。
_______________ Input.js _________________
import React from 'react';
import store from '../redux/store';
import { connect } from 'react-redux';
import { addSearchParam } from '../redux/actions';
export default class Input extends React.Component {
constructor(props) {
super(props);
this.state = {
player: ''
};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(event) {
this.setState({
player: event.target.value
});
}
handleSubmit(event) {
event.preventDefault();
store.dispatch(addSearchParam(this.state.player))
}
render() {
return ( <form onSubmit = {this.handleSubmit} >
<label>
<input type="text" value={this.state.player}
onChange={this.handleChange}/>
</label>
<input type="submit" value="Submit" />
</form>
);
}
}
_______________ Info.js _________________
import React from 'react';
import store from '../redux/store';
import { connect } from 'react-redux';
class Info extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<h2> {this.props.player}</h2>
)
}
}
function mapStateToProps(state) {
console.log("mapStateToPropsInfo: ", state)
return {
player: state.player
}
}
export default connect(mapStateToProps, null)(Info);
_______________ reducers.js _________________
'use strict';
import {
combineReducers
} from 'redux';
const SEARCH_PARAM = 'SEARCH_PARAM';
const searchReducer = (state = '', action) => {
if (action.type === SEARCH_PARAM) {
return action.text;
}
return state;
}
export const reducers = combineReducers({
searchReducer
})
export default reducers;
_______________ actions.js _________________
'use-strict';
export const addSearchParam = input => {
return {
type: 'SEARCH_PARAM',
id: 'player',
text: input
}
}
_______________ index.js _________________
'use-strict';
import React from 'react';
import ReactDOM from 'react-dom';
import App from './js/App';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import reducers from './js/redux/reducers'
let store = createStore(reducers)
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>, document.getElementById('root')
);
这些似乎是与此问题相关的最重要的文件,但如有必要,我可以提供更多。谢谢你的帮助。希望我只是遗漏了一些简单的东西。
最佳答案
我认为问题在于您已经编写了actions
但从未使用/连接过它。您需要在Input.js
中使用mapDispatchToProps
。
首先像这样在 input.js
中导入 action
:
import { addSearchParam } from './actions';
像这样编写 mapDispatchToProps
函数:
function mapDispatchToProps(dispatch){
return bindActionCreators({addSearchParam}, dispatch);
}
然后,在 Input.js
中的 handleSubmit
函数中执行此操作:
this.props.addSearchParam(this.state.player)
此外,不是在清除时导出类,而是更改 Input.js
的导出语句以同时绑定(bind) mapDispatchToProps
:
export default connect(null, mapDispatchToProps)(Input);
关于javascript - mapStateToProps 不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47544862/
我正在尝试使用 mapStateToProps 像这样: const mapStateToProps = (state: { logedIn: boolean; } ) => { return {
这个问题在这里已经有了答案: React - User-Defined JSX Components Not rendering (1 个回答) 4年前关闭。 我正在尝试创建一个使用 mapState
我有这个错误: TypeError: Cannot read property 'map' of undefined 并且不知道如何this.props.movies未定义,而我将initialS
我正在学习如何从头开始实现 redux,并且遇到了组件重新渲染的问题。我在 StackOverflow 上搜索这个问题已经产生了无数的结果,其中问题的答案总是“你改变了你的状态”。我已经阅读了 con
react/redux 新手。想知道为什么我的组件在触发操作时没有刷新。也不确定 reducer 是否是操作存储的好地方,但它是纯粹的,所以它应该可以工作。 发生的情况是操作被触发并且存储被更新。但是
我现在正在开发一个项目,其中涉及相当多的团队,并且变量初始化和传递到商店的地方有点困惑。 商店看起来主要是这样的。 const initialState = { myStoreData: nu
我知道我们可以通过这样做轻松地在组件状态中发送 mapStateToProps 的内容: constructor(props){ super(props); this.state = {
import React, { Component, Fragment } from "react"; import { connect } from "react-redux"; import {
我是 react 新手,无法调试为什么 mapStateToProps 没有运行。请参阅 login.js 中的最后一个函数。 我已在 mapStateToProps 函数中添加了警报语句,但它只是没
我正在调用我的 API 以使用其 ID 获取特定对象。 当我在 mapStateToProps 方法中调用 console.log 时,打印了整个对象,但状态的“anuncio”属性未定义当我尝试使用
我正在用头撞墙。我已经使用 React+Redux 顺利运行了一段时间,然后我使用 Chrome 删除了我的 localStorage,一切都变得一团糟。现在我无法让 mapStateToProps
我的 React 应用程序遇到一些问题。我正在尝试对用户进行身份验证并从后端获取一些数据,而 mapStateToProps 没什么问题。这就是我成功获得唯一用户的方法: const mapStat
我正在尝试使用 redux 将员工数据存储在商店中,但是当我尝试使用 mapStateToProps 访问商店时,它返回空数组,并且被调用两次。第一次状态有值,但第二次当我检查它时它会返回空数组 re
有没有类似mapStateToProps的函数,可以让我们在React中把Redux状态连接到函数式组件上? 将状态作为 props 从父组件传递是唯一的解决方案吗? 最佳答案 您绝对可以将 mapS
我刚开始玩 react/redux。我只想输入一些文本并点击提交,然后将其传递给另一个组件,该组件将显示输入的内容。 我知道我可以从 A 点到 B 点获取数据,因为如果我使用 store.subscr
我有一个带有 Redux 存储的 React 应用程序,它连接到 websocket 并在表格中向用户显示信息。我有 RxJs 中间件,它连接到 websocket 并使用内容分派(dispatch)
我说的是 connect 的 mapStateToProps 参数. 我的一个组件有一个名为 rules 的属性,它是一个函数数组。在 mapStateToProps 中,我调用这些规则,传入当前状态
我正在学习 React 和 Redux,发现了以下我无法理解的问题,我存储了一个可能如下所示的配置对象: { general:{duration:100,strength:100},
我需要访问容器内 redux 状态的特定属性。这些属性将依次用作获取其他嵌套属性并将它们映射到组件 props 的键。我使用immutableJS。 是在 mapStateToProps 中执行此操作
我正在寻找有关处理 mapStateToProps 中错误的最稳健、最可靠方法的建议,以及是否建议在 React+Redux 应用程序中尝试此级别。 例如,如果我将 react-redux 的 con
我是一名优秀的程序员,十分优秀!