Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I detect property changes with RCT_EXPORT_VIEW_PROPERTY in Objective C?

RCT_EXPORT_MODULE()

- (UIView *)view
{
  return [[RNNativeListview alloc] initWithBridge:self.bridge];
}

RCT_EXPORT_VIEW_PROPERTY(rowHeight, float)
RCT_EXPORT_VIEW_PROPERTY(numRows, NSInteger)

I want to reload my UITableView whenever js updates numRows. How do I listen for this?

like image 767
Stephen Horvath Avatar asked Oct 26 '25 14:10

Stephen Horvath


1 Answers

I don't think that KVO is a good solution.

You can just override setter for numRows property:

- (void)setNumRows:(NSInteger)numRows {
    _numRows = numRows;
    [self.tableView reloadData];
}

Or you can use RCT_CUSTOM_VIEW_PROPERTY:

RCT_CUSTOM_VIEW_PROPERTY(numRows, NSInteger, RNNativeListview) {
    view.numRows = [RCTConvert NSInteger:json];
    [view.tableView reloadData];
}
like image 137
Alexander Guschin Avatar answered Oct 29 '25 06:10

Alexander Guschin