ResourcePicker将不会显示

时间:2019-05-13 18:39:46

标签: ruby-on-rails reactjs shopify-app polaris

我无法终生打开ResourcePicker。按下按钮后,我可以看到状态从false更改为true,但是资源选择器实际上并未打开。

<AppProvider apiKey={apiKey} shopOrigin={shopOrigin} >
        <Page>
          <TopBar pageTitle="Create Sale" primaryButton="Save" clickPrimaryButton={this.handleClick} />
          <Layout sectioned={true}>
            <Layout.AnnotatedSection title="Scheduled sale settings" description="Setup the discount and which products will be selected for the sale.">
              <Card sectioned>
                <FormLayout>
                  <TextField label="Sale name" onChange={() => { }} />
                </FormLayout>
              </Card>

              <Card sectioned>
                <FormLayout>
                  <DiscountValue />
                </FormLayout>
              </Card>

              <Card>
                <Card.Section>
                  <FormLayout>
                    <SaleCategory onSelect={this.handleSelect} />
                  </FormLayout>
                </Card.Section>
                {searchBar}
                <Card.Section>
                  <Picker />
                </Card.Section>

              </Card>
            </Layout.AnnotatedSection>
          </Layout>
        </Page>
      </AppProvider>

然后是选取器组件

import React from 'react';
import { ResourcePicker, Button } from '@shopify/polaris';

class Picker extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      resourcePickerOpen: false,
    }
  }

  render() {
    return (
      <div>
        <pre>{JSON.stringify(this.state.resourcePickerOpen)}</pre>
        <ResourcePicker
          resourceType="Product"
          open={this.state.resourcePickerOpen}
          onSelection={({ selection }) => {
            console.log('Selected products: ', selection);
            this.setState({ resourcePickerOpen: false });
          }}
          onCancel={() => this.setState({ resourcePickerOpen: false })}
        ></ResourcePicker>
        <Button onClick={() => this.setState({ resourcePickerOpen: !this.state.resourcePickerOpen })}>Open...</Button>
      </div>
    );
  }
}

export default Picker;

我希望选择器可以打开,但不会打开。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

尝试像下面的代码片段一样放置状态声明

 <?PHP
     $set =json_decode($json);
      if (count($set->GetTickerJSONResult)) {
       echo "<table>";
       foreach ($set->GetTickerJSONResult as $idx => $stand) {

          echo "<tr>";
          echo "<td>$stand->AvgPrice</td>";
          echo "<td>$stand->Description </td>";
          echo "</tr>";
       }
        echo "</table>";
   }
  ?>

您可以删除构造函数