2017-04-04 16 views
6

Tôi đang sử dụng redux để ẩn và hiển thị các thành phần dựa trên giá trị.Thành phần Trường Mẫu Đỏ và Xác thực

Các Redux tài liệu dưới hình thức đề cập đến sau đây:

Đang kết nối đến nhiều lĩnh vực nên được sử dụng một cách tiết kiệm, vì nó sẽ yêu cầu toàn bộ thành phần để tái làm cho mỗi khi bất kỳ trường nào nó được kết nối với thay đổi. Đây có thể là một nút cổ chai hiệu suất. Trừ khi bạn hoàn toàn cần, bạn nên kết nối với từng lĩnh vực của mình với.

Tôi không rõ ràng nếu giải pháp của tôi để ẩn và hiện lĩnh vực dựa trên nút radio là tốt, đủ để sử dụng Fields đưa ra các cảnh báo để sử dụng một cách tiết kiệm.

Bạn có thể làm rõ nếu thành phần của tôi có đủ lý do để sử dụng Fields. Nếu không, cách khác để thực hiện là gì?

Ngoài ra, cách fields triển khai xác thực?

<div> 
    <form> 
     <Fields 
     component={RadioButtonGroupField} 
     names={['radioButtonGroup', 'nameTextField', 'nickNameTextField']} 
     /> 
    </ form> 
</div> 

function RadioButtonGroupField(fields) { 
    return(
     <div> 
     <RadioButtonGroupComponent 
      {...fields.radioButtonGroup.input} 
      {...fields.radioButtonGroup.meta} 
     /> 
     { 
      (fields.radioButtonGroup.input.value === 'name' || 
      fields.radioButtonGroup.input.value === 'both') && 
      <NameTextFieldComponent 
      {...fields.radioButtonGroup.input} 
      {...fields.radioButtonGroup.meta} 
      /> 
     } 
     { 
      (fields.radioButtonGroup.input.value === 'nickname' || 
      fields.radioButtonGroup.input.value === 'both') && 
      <NicknameTextFieldComponent 
      {...fields.radioButtonGroup.input} 
      {...fields.radioButtonGroup.meta} 
      /> 
     } 
     </div> 
    ); 
    } 

Trả lời

1

Có một cách khác bạn có thể làm điều đó, việc lựa chọn các giá trị cụ thể sử dụng selectors Redux-form (http://redux-form.com/6.0.5/docs/api/Selectors.md/) từ các cửa hàng Redux trong mapStateToProps và sau đó có điều kiện render thành phần nhất định của bạn.

Tuy nhiên, tôi nghĩ rằng Fields chính xác là những gì bạn nên sử dụng trong trường hợp này. Tôi nghĩ rằng cảnh báo phần lớn là để cảnh báo mọi người không nên đi và đưa toàn bộ hình dạng của họ vào các lĩnh vực, có những lĩnh vực 3 lại là không có vấn đề lớn.

Quá trình suy nghĩ dẫn đến việc tạo ra các Fields ở nơi đầu tiên có lẽ là cách tốt nhất để có được một xử lý về vấn đề này: https://github.com/erikras/redux-form/issues/841

+0

Làm thế nào tôi sẽ đi về thực hiện kiểm chứng thực với việc sử dụng Fields? – eNddy

+0

Đó là một câu hỏi hay @eNddy! Tôi không chắc chắn chính xác những gì nó có nghĩa là để xác nhận 'Fields'. Không có đối số xác thực vì tôi chắc chắn bạn đã nhận thấy. Cách rõ ràng sẽ là để sử dụng jsut syncValidation: http://redux-form.com/6.6.1/examples/syncValidation/ – dpwrussell

+0

Tôi đã nghĩ rằng nếu có thể có một cái gì đó như: ' '. @dpwrussell Bạn có nghĩ rằng điều gì đó như thế có thể xảy ra không? Tôi có vẻ tốt đẹp không phải để gây ô nhiễm các xác nhận async toàn cầu? – eNddy

Các vấn đề liên quan