小编Ema*_*him的帖子

如何将初始状态作为我的高阶组件的道具传递?

我有一个Slider不处理自己状态的组件,相反,它包含在另一个SliderDrag管理状态的组件中,并将道具传递给Slider

我使用的是withState从recompose库实现这一目标.

这是我的Slider州初始状态

export const getInitialState = () => ({
  min: 0,
  max: 100,
  value: 50,
  step: 1,
  width: 100,
  dragging: false
});
Run Code Online (Sandbox Code Playgroud)

这是我的高阶组件 withState()

export const SliderDrag = withState('state', 'onChange', getInitialState())(
  ({state, onChange, action}) => (
  <Slider
  {...state}
  onDragStart={({x}) => {
    onChange(dragStart(x, state));
  }}
  onDrag={({x}) => {
    onChange(drag(x, state));
    action('value')(state.value);
  }}
  onDragEnd={() => {
    onChange(dragEnd(state));
  }}
 />
)
);
Run Code Online (Sandbox Code Playgroud)

这就是我想要使用的方式SliderDrag.我想传递道具来设置我的初始,state以便我可以Slider在我的应用程序中的不同上下文中使用此组件

export const …
Run Code Online (Sandbox Code Playgroud)

javascript higher-order-functions composite-component reactjs recompose

4
推荐指数
1
解决办法
1214
查看次数

在地址簿更新时收到通知

我试图从addressBook使用预定义的方法获得更新

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
ABAddressBookRegisterExternalChangeCallback(addressBook, addressBookChanged, self);

void addressBookChanged(ABAddressBookRef addressBook, CFDictionaryRef info, void *context)
{
    NSLog(@"AddressBook Changed");
    [self getContactsFromAddressBook];
}
Run Code Online (Sandbox Code Playgroud)

我在调用ABAddressBookRegisterExternalChangeCallback(addressBook, addressBookChanged, self);我application:didFinishLaunchingWithOptions,然后我做回调方法,如何在c方法中使用self?如果我不能使用我的对象,我怎么能更新我的tableview?

addressbook tableview ios

1
推荐指数
1
解决办法
1722
查看次数