小编Gor*_*ath的帖子

无法在 react-redux 中的操作中调用另一个操作

我正在尝试从 web api call 加载数据,为此我添加了两个操作,一个用于调用 webapi 方法,另一个用于加载数据。我的行为是这样的:-

export function LoadLabResult (labresult) {

  return (dispatch) => {
    dispatch({
      type: 'RECEIVE_LABRESULT',
    });

    fetch('http://localhost:8090/api/Requisition/GetRequisitionTestInfo', {mode: 'no-cors'})
  .then(response =>dispatch({
        type: 'REQUEST_LABRESULT',
        labresult:response.data
      }));

  }
};
export function receiveLabResult(labresult) {
console.log(labresult);
  return {
    type:'REQUEST_LABRESULT',
    labresult:labresult
  };
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是它没有调用receiveLabResult 方法。我该怎么做?如何将数据传递给labresult?

ecmascript-6 reactjs es6-promise react-redux

6
推荐指数
2
解决办法
8888
查看次数

如何在componentWillUnmount中清除组件中存储的redux状态?

我们使用creatStore()将特定组件的数据存储在redux存储中,并使用combineReducers()组合所有组件的状态.现在,当我们离开页面时,我们需要清除使用redux存储的状态.这不是我在" 如何清除componentWillUnmount中的状态"中所写的标记问题 ? 因为在这个问题中他们希望通过使用this.state {}来清除他们保存的页面的状态.在我们的场景中,我们必须从特定组件的全局状态(redux-stored-state)中清除.我们想要一个全局解决方案,以便我们可以申请所有组件.请帮助我.

reactjs react-redux

6
推荐指数
1
解决办法
8239
查看次数

如何清除在react-datetime中输入的值?

我在日历控件中使用了react-datetime,现在的问题是,如果用户输入了一个无效的日期,例如'djfdjfhjkhdf',那么在此控件中就没有任何要验证的东西了,所以我决定编写自己的验证函数并在其上调用如果日期无效,则模糊事件,然后清除用户输入的文本。我的代码如下:-

import DatePicker from 'react-datetime';

focousOut(value) {
if (!validateDate(value)) {
  this.setState({ startDate:  ''});
  this.setState({ selectedValue: '' });
 }
}
handleChange(date) {
 this.setState({ selectedValue: date });
 this.setState({ startDate: date });
}

<Datetime
  timeFormat={false}
  value={this.state.selectedValue}
  defaultValue={this.state.startDate}
  onChange={this.handleChange}
  onBlur={this.focousOut}
  locale='en-US'
  dateFormat
  closeOnSelect
/>
Run Code Online (Sandbox Code Playgroud)

reactjs react-datetime

6
推荐指数
2
解决办法
4534
查看次数

如何处理reactjs中每个浏览器选项卡的单独状态?

我们打开新窗口选项卡,其中包含基于列表中所选userId的userList.我这样打开新窗口:

this.props.getVisitDetails(this.props.userId)
var win = window.open('./requisition','_blank');
win.onload = function() { this.document.title = windowTittle; }
win.focus();
this.state.oldWindow.push(win);
Run Code Online (Sandbox Code Playgroud)

我userId来自Redux商店.问题是如果我打开多个窗口选项卡,那么userId在每个窗口选项卡上将具有相同的功能userId,当您单击刷新时,所有窗口选项卡将具有相同的数据.所以我的问题是如何为每个窗口选项卡维护一个单独的状态?

注意:所有浏览器选项卡都共享我们使用createstore方法保存的相同存储状态,因此在我的情况下,visitid将在每行单击时更新,这将打开浏览器的新选项卡.这是数据"共享"的方式

reactjs react-redux

5
推荐指数
1
解决办法
1902
查看次数

如何清除在react-datepicker中输入的值?

我正在使用react-datepicker我们的日历控件。现在的问题是,如果用户输入的日期无效,例如“ djfdjfhjkhdf”,则在此控件中没有可以验证的日期。因此,我决定编写自己的验证函数,如果日期无效,则在模糊事件中调用该函数,然后清除用户输入的文本。我的代码是这样的:

import DatePicker from 'react-datepicker';
import 'react-datepicker/dist/react-datepicker.css';
focousOut(value) {
 this.handleChange('');
}
handleChange(date) {
 this.setState({ selectedValue: date });
 this.setState({ startDate: date });
}

<DatePicker
 selected={this.state.selectedValue}
 value={this.state.startDate}
 onChange={this.handleChange}
 onBlur={event => this.focousOut(event.target.value)} />
Run Code Online (Sandbox Code Playgroud)

validateDate是一个将返回的函数,true或者false,如果日期有效,则true返回false。我怎样才能达到这一要求,请您能帮助我吗?

reactjs react-datepicker

5
推荐指数
1
解决办法
5148
查看次数

除了react-datepicker中的下拉菜单之外,还有其他方式显示月份,年份吗?

我正在使用react-datepicker,但由于某种原因,我们不想在下拉列表中显示月份和年份。

<DatePicker
    selected={this.state.startDate}
    onChange={this.handleChange}
    peekNextMonth
    showMonthDropdown
    showYearDropdown
    dropdownMode="select"
/>
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以显示月份和年份吗?

reactjs react-datepicker

3
推荐指数
1
解决办法
3万
查看次数

如何用Highcharts在饼图中绘制箭头?

在此处输入图片说明

我正在使用highchart的饼图,并且一些设置是:

 pie: {
          borderColor: '#000000',
          innerSize: '60%'
 },
 series: [{
          data: [
          ['projected Income', 44.2],
          ['Discount', 26.6],
          ['Annual Loss', 20]
     ]}]
 }
Run Code Online (Sandbox Code Playgroud)

现在,我的要求是在年度亏损图上显示箭头,如蓝色图片所示。可以在Highcharts的饼图中实现此功能吗?我已经看到了许多示例,但这些示例已针对线图进行了说明。

highcharts pie-chart

3
推荐指数
1
解决办法
414
查看次数

警告:在减速器接收到的先前状态中发现意外的键“A”

我加入的帮助下部件动态require.ensure()ES6及getComponent()的react-router。一旦我为每个具有相同键(例如“A”)的记录打开单独的选项卡,我就会收到上述错误。我的动态加载是这样的:

 require.ensure([], (require) => { 
     const req = require('./components/A).default 
     const reducer= require('./modules').default
     injectReducer(store, {
         key: 'A',
         reducer
     })
     cb(null, req)
 })
Run Code Online (Sandbox Code Playgroud)

我的代码createstore()是这样的:

export const makeRootReducer = (asyncReducers) => {
  return combineReducers({
    B,
    C,
    ...asyncReducers
  })
}
export const injectReducer = (store, { key, reducer }) => {
  if (Object.hasOwnProperty.call(store.asyncReducers, key))return
  store.asyncReducers[key] = reducer
  store.replaceReducer(makeRootReducer(store.asyncReducers))
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,在浏览器选项卡打开时,除了第一次将警告显示为:

在减速器接收到的先前状态中发现意外的键“A” 期望找到已知的减速器键之一:“B”、“C”。意外的键将被忽略。

如果我最初会通过 Key 'A'combineReducers()那么这个警告就会消失。但这combineReducers()是全局的,它会保持减速器的状态,所以我不想在初始加载时传递这个 Key。我该如何解决此警告,请帮助我。

reactjs redux react-redux

2
推荐指数
1
解决办法
4134
查看次数

未捕获的错误:期望增强器是一个功能

我试图从组件调用reducer并想在component中进行渲染,但是当我试图将reduce存储在redux的createStore()方法中时,上面的错误就要来了。我的代码是这样的:

import { applyMiddleware, compose, createStore } from 'redux'
import thunk from 'redux-thunk'
import { browserHistory } from 'react-router'
import makeRootReducer from './reducers'
import { updateLocation } from './location'
import allReducers from './reducers';

export default (initialState = {}) => {
  // ======================================================
  // Middleware Configuration
  // ======================================================
  const middleware = [thunk]

  // ======================================================
  // Store Enhancers
  // ======================================================
  const enhancers = []

  let composeEnhancers = compose

  if (__DEV__) {
    const composeWithDevToolsExtension = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
    if (typeof composeWithDevToolsExtension === 'function') {
      composeEnhancers …
Run Code Online (Sandbox Code Playgroud)

reactjs redux react-redux

0
推荐指数
1
解决办法
4890
查看次数