-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
父组件如何引用子组件的方法? #610
Comments
|
@yuche 都试过了,都拿不到! |
你的 Taro 版本多少 |
@luckyadam 最新版beta26, import Taro, { Component } from '@tarojs/taro'
import { Provider } from '@tarojs/redux'
import '@tarojs/async-await'
import Index from './routes/article'
import dva from './dva'
import models from './model'
import action from './utils/action'
import './app.scss'
const dvaApp = dva.createApp({
initialState: {},
models,
onError(e, dispatch) {
dispatch(action('sys/error', e))
},
})
const store = dvaApp.getStore()
class App extends Component {
config = {
pages: [
'routes/article/index',
'routes/detail/index',
'routes/cash/index',
'routes/favourites/index',
'routes/survey/index',
'routes/survey/detail/index',
],
window: {
backgroundTextStyle: 'light',
navigationBarBackgroundColor: '#d89',
navigationBarTitleText: '每天趣闻',
navigationBarTextStyle: 'white',
navigationStyle: 'custom',
},
plugins: {
tencentvideo: {
version: '1.1.8',
provider: 'wxa75efa648b60994b',
},
},
}
byTestMethod() {
}
byGetUserInfo = (e, cb) => {
}
componentDidMount = () => {
dvaApp.dispatch(action('app/init'))
}
render() {
return (
<Provider store={store}>
<Index />
</Provider>
)
}
}
Taro.render(dvaApp.start(<App />), document.getElementById('app')) 这样子是在Taro.getApp()中可以拿到byGetUserInfo,但是拿不到byTestMethod方法。 另外自定义组件,父组件引用子组件的话两种方式,一种ref一种selectComponent,如果是ref那么和Taro.getApp一样,需要方法以属性的方式定义,如果是selectComponent,那么这个方法都拿不到,除非在jsx中引入了这个方法,比如click事件调用等等,jsx中没有引入的不会出现在selectComponent后的组件对象里! |
@ldwonday 请问解决了吗? |
@ldwonday 请试用最新版,看还有这个问题吗? |
Hello~ 您的问题楼上已经有了确切的回答,如果没有更多的问题这个 issue 将在 15 天后被自动关闭。 如果您在这 15 天中更新更多信息自动关闭的流程会自动取消,如有其他问题也可以发起新的 Issue。 Good luck and happy coding~ |
最新在用Taro,遇到了不少问题
1、webpack watch的时候经常漏掉model,这个可能和dva有关系,删掉dist,重新编译就是好的。
2、app.js中写的自定义方法,在别的地方调用不了,Taro.getApp()里面有没有自定义的方法。
3、自定义组件也是,父组件引用不了子组件内部的方法,除非这个方法在jsx中被用到了,没有用到的是找不到的。例如this.$scope.selectComponent('#packet')获取到自定义组件后发现里面并没有自定义的方法,但是子组件如果jsx中用到的方法能找到。
The text was updated successfully, but these errors were encountered: