Cách sử dụng PropTypes trong React – Thành Phố Vũng Tàu – Website Review Dịch Vụ Số 1 Tại Vũng Tàu


Nếu bạn đã từng muốn thêm bảo đảm an toàn kiểu vào những dự án Bất Động Sản React của mình, nhưng việc sử dụng TypeScript quá mức thiết yếu hoặc quá nhiều việc làm thì PropTypes là lựa chọn tuyệt vời và hoàn hảo nhất cho bạn. PropTypes là một công cụ trong React được cho phép bạn xác nhận cấu trúc và loại của tổng thể những đạo cụ của bạn và nếu có bất kể yếu tố nào, chúng sẽ hiển thị dưới dạng lỗi trong bảng tinh chỉnh và điều khiển của những công cụ dành cho nhà tăng trưởng trình duyệt của bạn .

Bắt đầu

Nếu bạn đã từng muốn thêm bảo đảm an toàn kiểu vào những dự án Bất Động Sản React của mình, nhưng việc sử dụng TypeScript quá mức thiết yếu hoặc quá nhiều việc làm thì PropTypes là lựa chọn tuyệt vời và hoàn hảo nhất cho bạn. PropTypes là một công cụ trong React được cho phép bạn xác nhận cấu trúc và loại của tổng thể những đạo cụ của bạn và nếu có bất kể yếu tố nào, chúng sẽ hiển thị dưới dạng lỗi trong bảng tinh chỉnh và điều khiển của những công cụ dành cho nhà tăng trưởng trình duyệt của bạn .

Để mở màn sử dụng PropTypes trong dự án Bất Động Sản của bạn, bạn cần setup thư viện PropTypes .

npm i prop-types

Bạn đang đọc: Cách sử dụng PropTypes trong React

Không quan trọng nếu bạn đang làm việc với một thành phần lớp hay hàm, việc thiết lập PropTypes hoạt động hoàn toàn giống nhau. Bạn chỉ cần xác định một thuộc tính trên lớp / hàm được gọi propTypes. Thuộc tính này sẽ là một đối tượng phác thảo tất cả các đạo cụ cho thành phần.

import PropTypes from 'prop-types'
class Component {
  render() {
    return 'Hi'
  }
}
Component.propTypes = {
  // Put props here
}
export default Component
import PropTypes from 'prop-types'
function Component(props) {
  return 'Hi'
}
Component.propTypes = {
  // Put props here
}
export default Component
Component.propTypes = {
  // Put props here
}

Cách cơ bản nhất bạn có thể kiểm tra kiểu của prop là kiểm tra xem nó có phải là một trong những kiểu nguyên thủy trong JavaScript hay không, chẳng hạn như boolean, string, object, v.v. Để làm điều này, chúng tôi sẽ sử dụng tên của prop làm khóa trong propTypesđối tượng và giá trị cho khóa đó sẽ là PropType cụ thể mà chúng tôi đang kiểm tra.

Component.propTypes = {
  name: PropTypes.string,
  age: PropTypes.number,
  address: PropTypes.object,
  friends: PropTypes.array
}

Đây là cách dễ nhất để thiết lập PropTypes và rất tốt để bắt những lỗi nhỏ, ví dụ điển hình như vô tình chuyển một chuỗi thay vì một số ít .


Cảnh báo: Loại đề xuất không thành công: ageLoại đề xuất stringđược cung cấp cho Component, dự kiến không hợp lệ number.

Điều này thật tuyệt vì bây giờ chúng ta có thể đảm bảo rằng điểm agetựa luôn là một con số. Bạn cũng sẽ nhận thấy rằng không có cảnh báo nào về việc thiếu đạo cụ mặc dù chúng tôi đã xác định PropTypes cho addressfriends. Điều này là do theo mặc định, tất cả các đạo cụ đều là tùy chọn. Để tạo ra một điểm tựa cần thiết, chúng ta có thể xâu chuỗi isRequiredđến cuối PropType.

Component.propTypes = {
  name: PropTypes.string.isRequired,
  age: PropTypes.number.isRequired,
  address: PropTypes.object.isRequired,
  friends: PropTypes.array
}

Cảnh báo: Loại hỗ trợ không thành công: Loại hỗ trợ addressđược đánh dấu là bắt buộc trong Component, nhưng giá trị của nó làundefined

Ngoài ra, đây là list toàn bộ những PropTypes cơ bản để kiểm tra những nguyên thủy JavaScript

PropTypes.array
PropTypes.bool
PropTypes.func
PropTypes.number
PropTypes.object
PropTypes.string
PropTypes.symbol

Ngoài việc hoàn toàn có thể kiểm tra những kiểu nguyên thủy, bạn cũng hoàn toàn có thể kiểm tra một số ít thứ đơn cử của React .

Kiểm tra khả năng kết xuất

Nếu bạn chỉ muốn kiểm tra xem một thành phần có thể được hiển thị hay không, bạn có thể sử dụng PropTypes.nodekiểm tra. Điều này sẽ kiểm tra xem liệu prop có phải là loại mà React có thể hiển thị hay không. Những thứ như chuỗi, số, phần tử và mảng là những loại có thể kết xuất phổ biến.

Component.propTypes = {
  renderableProp: PropTypes.node
}

Nếu bạn muốn chỉ cần kiểm tra xem liệu một phần mềm hỗ trợ có phải là một thành phần React mà bạn có thể sử dụng hay không PropTypes.element. Điều này rất hữu ích để đảm bảo rằng một thành phần chỉ có một thành phần con, chẳng hạn.

Component.propTypes = {
  children: PropTypes.element.isRequired
}

Cuối cùng, bạn có thể kiểm tra xem prop của bạn có phải là tên của một thành phần React hay không bằng cách sử dụng PropTypes.elementType.

Component.propTypes = {
  as: PropTypes.elementType
}

PropTypes cũng chứa rất nhiều kỹ thuật kiểm tra kiểu nâng cao khác nhau .

Kiểm tra bất kỳ loại nào

Đôi khi bạn chỉ muốn đảm bảo cần có một chỗ dựa mà không chỉ định một loại cụ thể. Đây là nơi PropTypes.anycó ích vì nó sẽ không bao giờ đưa ra cảnh báo cho loại này.

Component.propTypes = {
  couldBeAnything: PropTypes.any.isRequired
}

Nếu bạn không thích ý tưởng sử dụng bất kỳ loại nào, nhưng cũng có một giá đỡ có thể là nhiều loại, bạn có thể sử dụng PropTypes.oneOfType()để chỉ định loại giá đỡ có thể là. Điều này chỉ lấy một mảng các PropTypes hợp lệ.

Component.propTypes = {
  stringOrNumber: PropTypes.oneOfType([
    PropTypes.string,
    PropTypes.number
  ])
}

Nếu bạn muốn đảm bảo rằng giá trị của một trụ là từ một danh sách cụ thể, bạn có thể sử dụng PropTypes.oneOf()để xác định các giá trị được phép. Điều này là hoàn hảo để tạo một enum.

Component.propTypes = {
  state: PropTypes.oneOf([
    'LOADING',
    'READY',
    'ERROR'
  ])
}

Khi bạn có một mảng mà bạn biết kiểu của các phần tử, bạn có thể sử dụng PropTypes.arrayOf()để chỉ định kiểu của các phần tử. Điều này hoạt động rất giống với PropTypes.array, nhưng nó cũng kiểu kiểm tra các phần tử trong mảng.

Component.propTypes = {
  names: PropTypes.arrayOf(PropTypes.string)
}

Cũng giống như với mảng, bạn cũng có thể kiểm tra các loại thuộc tính riêng lẻ của một đối tượng PropTypes.shape(). Điều này thực sự hữu ích khi chuyển các đối tượng lớn xuống một thành phần.

Component.propTypes = {
  address: PropTypes.shape({
    street: PropTypes.string.isRequired,
    state: PropTypes.string,
    country: PropTypes.oneOf(['US', 'India']).isRequired
  })
}
Component.propTypes = {
  address: PropTypes.exact({
    street: PropTypes.string.isRequired,
    state: PropTypes.string,
    country: PropTypes.oneOf(['US', 'India']).isRequired
  })
}

PropTypes là một cách tuyệt vời để thêm tuyến phòng thủ tiên phong trong những ứng dụng của bạn. Tuy nhiên, nó không phải là tuyệt đối, vì nó sẽ chỉ bắt lỗi trong thời hạn chạy, trong khi một cái gì đó như TypeScript sẽ bắt những lỗi này trong bước biên dịch, nhưng nó thuận tiện hơn nhiều để thiết lập và thao tác .