小编Sha*_*ews的帖子

什么是有条件地在React中添加readOnly的最佳方法?

在React中给出了一个提供true/false的prop,如何有条件地将readOnly添加到JSX中的输入字段?

所以,如果我有this.props.boolean,当没有附加this.props.boolean == false readOnly时,添加readOnly的简洁选项,当附加this.props.boolean == true readOnly时.

reactjs redux-form

7
推荐指数
1
解决办法
3707
查看次数

如何使用Redux形式选择器使syncErrors脱离状态

所以我有一个redux-form组件,它具有一个validate函数,该函数返回Field的值。

const validate = values => {
  const errors = {
    orderHeader: {}
  };

  const orderHeader = values.orderHeader || {};
  if (!orderHeader.orderID) {
    errors.orderHeader.orderID = "Working";
  }
  if (!orderHeader.salesRepID) {
    errors.orderHeader.salesRepID = "Working as well";
  }

  return errors;
}
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚如何使用选择器将所有syncError值返回到将列出所有当前错误的错误清单组件。

我的选择器看起来像这样

const selector = formValueSelector('mainForm')
MainForm = connect(
  state =>
  ({
    syncErrors: getFormSyncErrors('mainForm')(state),
    initialValues: state.account.data,
  }
),
  { load: loadAccount }, // bind account loading action creator
)(MainForm);
Run Code Online (Sandbox Code Playgroud)

记录以下返回未定义...

  render() {
    const { error, handleSubmit, load, pristine, reset, submitting, values, …
Run Code Online (Sandbox Code Playgroud)

reactjs redux redux-form

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

从redux-saga中调用redux-form dispatch(change)

我有一个传奇,发布到Web服务并返回新的销售订单编号以进行陈述。效果很好,看起来像这样。

//New SALES NUMBER SAGA
function getNewSalesNumber(salesRepId, typeId) {
  const url = `${baseUrl}/api/SalesOrder/${salesRepId}?typeId=${typeId}`;
  console.log(url);
  return axios.post(url);
}

function* callGetNewSalesNumber({salesRepId, typeId, resolve, reject}) {
  const result = yield call(getNewSalesNumber, salesRepId, typeId)
    if (result.data) {
    yield put({type: "NEWSALESNUMBER_FETCHED", result});
//    yield call(resolve); 
    } else {
//    yield call(reject);
  }
}

function* getNewSalesNumberSaga() {
  yield* takeEvery("FETCH_NEWSALESNUMBER", callGetNewSalesNumber);
}
Run Code Online (Sandbox Code Playgroud)

减速器看起来像这样。

    function newSalesNumber(state = {}, action) {
  switch(action.type) {
    case 'NEWSALESNUMBER_FETCHED':
      return state
        .set("orderHeader.orderId", action.result);
    default:
      return state;
  }
}

export default newSalesNumber;
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚将该值返回到newSalesNumber(现在处于状态)到Field的选项。

如果我是在表单组件中执行此操作,则将使用类似... …

reactjs redux redux-form redux-saga

4
推荐指数
1
解决办法
1369
查看次数

以编程方式更改 Redux-Form 中的 FieldArray 值

我试图弄清楚如何使用this.props.dispatch(change)以便使用一个字段选择器值来更新 FieldArray 中的另一个字段值。

https://codesandbox.io/s/2p7k7jn930

我似乎无法正确理解此语法。

this.props.dispatch(
        change("FieldArraysForm", `${props.member}.firstName`, this.props.hasLastName)
      );
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?预期的行为是添加一个成员,然后在姓氏字段中键入的任何内容在名字字段中以编程方式更新。

/**
The following can replace the file in the Field Arrays example
(https://github.com/erikras/redux-form/tree/master/examples/fieldArrays) to demonstrate this functionality.
**/
import React from "react";
import { connect } from "react-redux";
import {
  Field,
  FieldArray,
  reduxForm,
  formValueSelector,
  change
} from "redux-form";
import validate from "./validate";

const selector = formValueSelector("fieldArrays");

const renderField = ({ input, label, type, meta: { touched, error } }) => (
  <div>
    <label>{label}</label>
    <div>
      <input {...input} type={type} …
Run Code Online (Sandbox Code Playgroud)

reactjs redux redux-form

4
推荐指数
2
解决办法
6188
查看次数

如果道具包含空白数组,则进行条件渲染

我正在尝试根据其中包含值的数组有条件地呈现。所以基本上如果 this.props.data == [] 不渲染。如果 this.props.data == [{data is here}] 渲染。

我尝试过的事情。

如果道具存在

{this.props.data && <Field 
                    label="Data" 
                    name="data" 
                    type="select" 
                    component={SelectComponent}>
                    <option>Select data</option>
                  </Field> }
Run Code Online (Sandbox Code Playgroud)

===仍然呈现===

空值

{this.props.data != null && <Field 
                    label="Data" 
                    name="data" 
                    type="select" 
                    component={SelectComponent}>
                    <option>Select data</option>
                  </Field> }
Run Code Online (Sandbox Code Playgroud)

===仍然呈现===

长度

{this.props.data.length > 0 && <Field 
                    label="Data" 
                    name="data" 
                    type="select" 
                    component={SelectComponent}>
                    <option>Select data</option>
                  </Field> }
Run Code Online (Sandbox Code Playgroud)

===长度未定义===

ecmascript-6 reactjs

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

标签 统计

reactjs ×5

redux-form ×4

redux ×3

ecmascript-6 ×1

redux-saga ×1