Estoy tratando de crear un proptype que puede ser una cadena o una matriz con solo 1 cadena y 1 forma de objeto, por ejemplo [10, { message: "hello world", type: "success" }]
Actualmente, tengo:
static propTypes = { myProp: PropTypes.oneOfType([ PropTypes.string, PropTypes.arrayOf( PropTypes.oneOfType([PropTypes.string, myObjectShape]) ), ]), }Esto aceptará una cadena o una matriz que puede tener cualquier cantidad de cadenas o formas de objetos. ¿Hay alguna manera de limitar la matriz a solo 1 cadena y 1 forma de objeto?
Puede crear un tipo de accesorio personalizado. Algo del estilo de...
myProp: function(props, propName, componentName) { if (!props[propName] || !props[propName].length !== 2) { return new Error(`${propName} must be an array with length 2`); } if (typeof props[propName][0] !== 'string') { return new Error(`The first element in ${propName} must be a string`); } // check for the shape of the object at index 1... }Más sobre esto aquí .