I'm new to using react.js, and am trying to write a re-usable component that has an optional property passed to it. In the component, that optional property pulls data from a db using meteor, then I want to check if a property exists on the returned object (parent_task exists on task), and if exists, adds a link. This seems fairly simple, but I keep getting errors. Does anyone have any suggestions on what I might be missing? Is there a jsx gotcha that I'm missing?
<Header task={params.task_id} /> // rendering component with property // Task List Header Header = React.createClass({ mixins: [ReactMeteorData], getMeteorData() { var handle = Meteor.subscribe('tasks'); return { taskLoading: ! handle.ready(), task: Tasks.findOne({_id: this.props.task}) } }, getParentTaskLink() { if (!this.data.taskLoading) { var current_task = this.data.task; if (parent_task in current_task) { // or current_task.hasOwnProperty(parent_task) console.log("parent_task exists!"); } } }, render() { return ( <div className="bar bar-header bar-calm"> {this.getParentTaskLink()} // eventually return anchor element here <h1 className="title">Hello World</h1> </div> ) } });
We can check if a property exists in the object by checking if property !== undefined . In this example, it would return true because the name property does exist in the developer object.
To check if an element exists in an array in React: Use the includes() method to check if a primitive exists in an array. Use the some() method to check if an object exists in an array.
To check if a property exists in an object in TypeScript: Mark the specific property as optional in the object's type. Use a type guard to check if the property exists in the object. If accessing the property in the object does not return a value of undefined , it exists in the object.
what is the prop in question? how about
{this.props.propInQuestion ? <a href="#">link</a> : null}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With